java - 使用java for循环将多个数据插入数据库
问题描述
嗨,我正在从事图书馆管理项目。对于每本有多个副本的书,我需要在数据库中输入相同的详细信息,但书号不同。
public class bookentry {
public boolean addbook(int bid,String bname, String authname, Double bprice, int edition, String pub, String catname, int bcpy) {
boolean st = false;
try {
DBconnection dbconnection = new DBconnection();
java.sql.Connection com = dbconnection.getconnection();
for(int i=0;bid>=1;i++){
PreparedStatement stmt = (PreparedStatement) com.prepareStatement("insert into book_master(bname, authname, bprice, edition, pub, catname, bcpy)values(?,?,?,?,?,?,?)");
stmt.setString(1, bname);
stmt.setString(2, authname);
stmt.setDouble(3, bprice);
stmt.setInt(4, edition);
stmt.setString(5, pub);
stmt.setString(6, catname);
stmt.setInt(7, bcpy);
int count = stmt.executeUpdate();
}
解决方案
您的 for 循环似乎不正确,因此您可以使用此 for 循环代码替换整个 for 循环,
for (int i = 0; i < bid; i++) {
try (PreparedStatement stmt = (PreparedStatement) com
.prepareStatement("insert into book_master(bname, authname, bprice, edition, pub, catname, bcpy)values(?,?,?,?,?,?,?)");) {
stmt.setString(1, bname + i);
stmt.setString(2, authname);
stmt.setDouble(3, bprice);
stmt.setInt(4, edition);
stmt.setString(5, pub);
stmt.setString(6, catname);
stmt.setInt(7, bcpy);
int count = stmt.executeUpdate();
}
}
尝试让我知道您还面临哪些问题。
推荐阅读
- python - 根据熊猫数据框中的列值获取更改日期
- laravel - 阿拉伯字体在 barryvdh/laravel-snappy 中以方形符号显示
- python - 具有抽象类的并行处理
- google-cloud-platform - Google Cloud Console - SQL - 无法加载错误
- javascript - mini-css-extract-plugin 生成两个额外的 JS 文件
- c++ - 为什么即使这种转换不合法,std::is_convertible_v 也会返回 true?
- python - np.cov() 矩阵返回意外值
- google-cloud-platform - GCP 云互连和 VPC 对等互连
- javascript - 是什么导致 javascript 中的超小数字被识别为不同的布尔值?
- android-studio - 我在哪里可以找到 android studio 中的图标视图更少的属性