你好,这段代码中的 friend 们,我想将输入到 JTable
中的所有数据放入我的数据库中,但是在将数据输入到数据库的 for 循环中出现错误,结果如下:
http://i67.tinypic.com/5mwgt4.png
final void tabledata(){
int rows=jt.getRowCount();
int colms=jt.getColumnCount();
int bpss=0,spss=0;
for(int i=0;i<colms;i++){
for(int j=0;j<rows;j++) {
if(i==0){
String qtys= jt.getValueAt(j,i).toString();
int qtyss=Integer.parseInt(qtys);
System.out.print(qtyss);
try{stmt.execute("INSERT INTO ITEMS(QTY) VALUES("+qtyss+")");}
catch (SQLException ex) {ex.printStackTrace();}
}else{
if(i==1){
String codes= jt.getValueAt(j,i).toString();
int codess=Integer.parseInt(codes);
System.out.print(codess);
try{stmt.execute("INSERT INTO ITEMS(CODE) VALUES("+codess+")");}
catch (SQLException ex) {ex.printStackTrace();}
} else{
if(i==2){
String names=jt.getValueAt(j,i).toString();
System.out.print(names);
try{stmt.execute("INSERT INTO ITEMS(NAME) VALUES('"+names+"')");}
catch (SQLException ex) {ex.printStackTrace();}
} else{
if(i==3){
String bps= jt.getValueAt(j,i).toString();
bpss=Integer.parseInt(bps);
System.out.print(bpss);
try{stmt.execute("INSERT INTO ITEMS(BUYPRICE) VALUES("+bpss+")");}
catch (SQLException ex) {ex.printStackTrace();}
} else{
if(i==4){
String sps= jt.getValueAt(j,i).toString();
spss=Integer.parseInt(sps);
System.out.print(spss);
try{stmt.execute("INSERT INTO ITEMS(SELLPRICE) VALUES("+spss+")");}
catch (SQLException ex) {ex.printStackTrace();}
}}}}}}}
最佳答案
首先要做的是在安装此jar 后下载rs2xml.jar,将其添加到您的库中。因此,您可以将 ResultSet 填充到 TableModel。我使用 DB Derby 制作了一个示例 gui,我可以在其中将其插入并填充到表模型中。我在这里使用了准备好的语句。
private void addBtnActionPerformed(java.awt.event.ActionEvent evt) {
String inputEmployee = employeeTf.getText();//textfields
String inputDepartment = departmentTf.getText();//textfields
if(inputEmployee.isEmpty() && inputDepartment.isEmpty()){
JOptionPane.showMessageDialog(null, "Please fill up!");
}//If blank
else if(inputEmployee.isEmpty()){
JOptionPane.showMessageDialog(null, "Employee Name should not be left blank");//If blank
}
else if(inputDepartment.isEmpty()){
JOptionPane.showMessageDialog(null, "Department should not be left blank");//If blank
}
else{
String myQuery = "INSERT INTO SAMPLE (EMPLOYEENAME,DEPARTMENT) VALUES (?,?)";
try(Connection myCon = DBUtilities.getConnection(DBType.JDBC);//Establish the connection
PreparedStatement myPs = myCon.prepareStatement(myQuery);
){
myPs.setString(1, employeeTf.getText());
myPs.setString(2, departmentTf.getText());
myPs.executeUpdate(); // Executes the SQL statement in this PreparedStatement object, which must be an SQL Data Manipulation Language (DML) statement, such as INSERT, UPDATE or DELETE;
System.out.print("Record is inserted");
DefaultTableModel model = (DefaultTableModel) Table_Employee.getModel();
model.addRow(new Object[]{employeeTf.getText(),departmentTf.getText()});
} catch (SQLException ex) {
DBUtilities.processException(ex);
}
}//end of else
}
创建表模型的语法:
DefaultTableModel model = (DefaultTableModel) Table_Employee.getModel();
//yourTableModelName //yourTableName
model.addRow(new Object[]{employeeTf.getText(),departmentTf.getText()});
//yourTextfield //yourTextfield
希望这对您有所帮助。 rs2xml.jar 的链接 http://en.osdn.jp/projects/sfnet_finalangelsanddemons/downloads/rs2xml.jar/
关于java - 如何将表的所有数据都带入JTable并插入到数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36154145/