Java 如何将表中的多行数据插入数据库?
这是我的代码,我希望数据库中有两行数据,但当我继续操作时,数据库表中只有最后一行或第二行数据集:Java 如何将表中的多行数据插入数据库?,java,database,rows,Java,Database,Rows,这是我的代码,我希望数据库中有两行数据,但当我继续操作时,数据库表中只有最后一行或第二行数据集: try{ int rows=tblCO2.getRowCount(); for(int row = 0; row<rows; row++) { System.out.println(row); String itemcode = (String)tblCO2.getValueAt(row, 0); String lotno = (String)tblCO2.g
try{
int rows=tblCO2.getRowCount();
for(int row = 0; row<rows; row++)
{
System.out.println(row);
String itemcode = (String)tblCO2.getValueAt(row, 0);
String lotno = (String)tblCO2.getValueAt(row, 1);
String stackno = (String)tblCO2.getValueAt(row, 2);
String grade = (String)tblCO2.getValueAt(row, 3);
String ctns = (String)tblCO2.getValueAt(row, 4);
try
{
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/demo","user","pw");
conn.setAutoCommit(false);
String queryco = "Insert into alicreative.pur(itemcode,lotno,stackno,grade,ctns) values (?,?,?,?,?)";
pst = conn.prepareStatement(queryco);
pst.setString(1, itemcode);
pst.setString(2, lotno);
pst.setString(3, stackno);
pst.setString(4, grade);
pst.setString(5, ctns);
pst.addBatch();
}
catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e)
{
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
pst.executeBatch();
conn.commit();
}
catch( HeadlessException | SQLException e){
JOptionPane.showMessageDialog(this,e.getMessage());
}
试试看{
int rows=tblCO2.getRowCount();
对于(int row=0;row您正在为每一行创建一个新的连接对象。为什么
(因此,您的PreparedStatement对象的数量与行的数量一样多。在循环结束后,实际执行多少个PreparedStatement对象,以及执行哪个对象?)初始化PreparedStatement
(并创建连接)在循环之前,因为实际上,每次迭代都要创建一个新的循环,并用一个批填充它
最后,您只执行最后一个PreparedStatement
(它只包含最后一行的批处理)
试试看{
int rows=tblCO2.getRowCount();
Class.forName(“org.apache.derby.jdbc.ClientDriver”).newInstance();
conn=DriverManager.getConnection(“jdbc:derby://localhost:1527/demo“、”用户“、”pw”);
连接设置自动提交(错误);
String queryco=“插入alicreative.pur(项目代码、lotno、stackno、等级、CTN)值(?、、?、?)”;
PreparedStatement pst=conn.prepareStatement(查询);
对于(int row=0;row)
try{
int rows=tblCO2.getRowCount();
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
conn = DriverManager.getConnection("jdbc:derby://localhost:1527/demo","user","pw");
conn.setAutoCommit(false);
String queryco = "Insert into alicreative.pur(itemcode,lotno,stackno,grade,ctns) values (?,?,?,?,?)";
PreparedStatement pst = conn.prepareStatement(queryco);
for(int row = 0; row<rows; row++)
{
System.out.println(row);
String itemcode = (String)tblCO2.getValueAt(row, 0);
String lotno = (String)tblCO2.getValueAt(row, 1);
String stackno = (String)tblCO2.getValueAt(row, 2);
String grade = (String)tblCO2.getValueAt(row, 3);
String ctns = (String)tblCO2.getValueAt(row, 4);
try
{
pst.setString(1, itemcode);
pst.setString(2, lotno);
pst.setString(3, stackno);
pst.setString(4, grade);
pst.setString(5, ctns);
pst.addBatch();
}
catch(ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException e)
{
JOptionPane.showMessageDialog(this,e.getMessage());
}
}
pst.executeBatch();
conn.commit();
}
catch( HeadlessException | SQLException e){
JOptionPane.showMessageDialog(this,e.getMessage());
}