Java向数据库添加列表

Java向数据库添加列表,java,sql,Java,Sql,所以我有一个Product.java类: Public class Product{ private String id; private String name; private float price; } 我有一个从数据库获取数据的产品列表: public List<Product> getProductList() { List<Product> list = new ArrayList<Product>(); String sql

所以我有一个Product.java类:

Public class Product{
private String id;
private String name;
private float price;
}
我有一个从数据库获取数据的产品列表:

public List<Product> getProductList() {
    List<Product> list = new ArrayList<Product>();
    String sql = "SELECT * FROM Product";
    try {
        Statement st = getConnection().createStatement();
        ResultSet rs = st.executeQuery(sql);
        while (rs.next()) {
            String id = rs.getString(1);
            String name = rs.getString(3);
            float price = rs.getFloat(4);
            Product p = new Product();
            p.setId(id);
            p.setName(name);
            p.setPrice(price);
            list.add(p);
        }
        rs.close();
        st.close();
    } catch (SQLException ex) {
        Logger.getLogger(DataProcess.class.getName()).log(Level.SEVERE, null, ex);
    }
    return list;
}
公共列表getProductList(){ 列表=新的ArrayList(); String sql=“从产品中选择*”; 试一试{ 语句st=getConnection().createStatement(); 结果集rs=st.executeQuery(sql); while(rs.next()){ 字符串id=rs.getString(1); 字符串名称=rs.getString(3); 浮动价格=rs.getFloat(4); 产品p=新产品(); p、 setId(id); p、 集合名(名称); p、 设定价格(价格); 增加(p); } rs.close(); 圣克洛斯(); }catch(SQLException-ex){ Logger.getLogger(DataProcess.class.getName()).log(Level.SEVERE,null,ex); } 退货清单; }
我将一些产品添加到另一个列表中,现在我想将该列表添加回数据库中的Seld表中,但我只知道如何将一个产品项添加到数据库中,而不知道如何将整个列表添加到数据库中。是否有向数据库添加列表的方法?

这可以通过PreparedStatementaddBatch()executeBatch()方法实现,另一个答案演示了这一点:

这是前面两个答案的混合:

  PreparedStatement ps = c.prepareStatement("INSERT INTO employees VALUES (?, ?)");

  ps.setString(1, "John");
  ps.setString(2,"Doe");
  ps.addBatch();

  ps.clearParameters();
  ps.setString(1, "Dave");
  ps.setString(2,"Smith");
  ps.addBatch();

  ps.clearParameters();
  int[] results = ps.executeBatch();
资料来源:

在本例中,您需要设置必要的参数,然后在列表上循环的每次迭代中调用addBatch(),然后在循环调用executeBatch()之后调用

如果数据库对批处理设置了限制,并且没有在其JDBC驱动程序中跨父处理这些限制,那么您可能希望在循环中在一定数量的项之后调用executeBatch()