使用 if 条件限制数据库中的行的问题
Problems with limiting rows in database with if condition
我正在尝试将我的数据库限制为仅存储 10 瓶啤酒...我尝试使用如下 if 语句:
for (int i=0; i<beers.length; i++) {
if (beers.length != 0)
beerRepository.save(beers[i]);
else if (beers.length == 10)
throw new RuntimeException("Database full!");
}
但由于某些原因它不起作用。我仍然可以在数据库中存储 10 多种啤酒。对我错的地方有什么建议吗?
您的 if...else if
陈述不正确。即使 beers.length
为 10,您的第一个 if
语句也会执行,因为您只是检查 beers.length
是否为非零。所以啤酒一直坚持。
您的意图仍然很模糊,但是如果您想在 for 循环中使用一些代码来保存 beers
数组的前 10 条啤酒记录,则可以是:
for (int i=0; i<10; i++) {
beerRepository.save(beers[i]);
}
如果您想检查您的数据库是否已经保存了 10 条啤酒记录,您可以通过以下方式询问您的 repo:
beerRepository.count();
您可以在 for
循环之前使用它来检查数据库是否已满。
例如
if (beerRepository.count() >= 10) {
throw new RuntimeException("Database full!");
} else {
for (int i=0; i<10; i++) {
beerRepository.save(beers[i]);
}
}
我正在尝试将我的数据库限制为仅存储 10 瓶啤酒...我尝试使用如下 if 语句:
for (int i=0; i<beers.length; i++) {
if (beers.length != 0)
beerRepository.save(beers[i]);
else if (beers.length == 10)
throw new RuntimeException("Database full!");
}
但由于某些原因它不起作用。我仍然可以在数据库中存储 10 多种啤酒。对我错的地方有什么建议吗?
您的 if...else if
陈述不正确。即使 beers.length
为 10,您的第一个 if
语句也会执行,因为您只是检查 beers.length
是否为非零。所以啤酒一直坚持。
您的意图仍然很模糊,但是如果您想在 for 循环中使用一些代码来保存 beers
数组的前 10 条啤酒记录,则可以是:
for (int i=0; i<10; i++) {
beerRepository.save(beers[i]);
}
如果您想检查您的数据库是否已经保存了 10 条啤酒记录,您可以通过以下方式询问您的 repo:
beerRepository.count();
您可以在 for
循环之前使用它来检查数据库是否已满。
例如
if (beerRepository.count() >= 10) {
throw new RuntimeException("Database full!");
} else {
for (int i=0; i<10; i++) {
beerRepository.save(beers[i]);
}
}