请帮我执行这个程序:
try{
Connection conn;
String dbuser = "root";
String dbpassw = "1209";
String databasename = "mynewdatabase";
String url = "jdbc:mysql://localhost:3306/" + databasename;
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection (url, dbuser, dbpassw);
PreparedStatement ps = conn.prepareStatement("insert into newjframe1 values(?,?)");
String TicketProjectSOWNo=jTextField1.getText().toString();
String RELATED_REFERENCES=jTextField2.getText().toString();
String REPORT_DATE=jXDatePicker3.getDate().toString();
ResultSet res = ps.executeQuery();
if (res.next()) {
JOptionPane.showMessageDialog(this,"Data saved successfully");
}
}
catch( Exception e ) {
System.out.println(e);
}
我试过这样但在MySQL数据库中保存这些组件时出错。这个程序的正确编码是什么?
答案 0 :(得分:1)
您可以像这样编辑代码
假设您的表有3列要插入
PreparedStatement ps = conn.prepareStatement("insert into newjframe1 values(?,?,?)");
ps.setString(1,jTextField1.getText().toString());
ps.setString(2,jTextField2.getText().toString());
ps.setString (3,jXDatePicker3.getDate().toString());
int flag = ps.executeUpdate();
if (flag!=0) {
JOptionPane.showMessageDialog(this,"Data saved successfully");
}
答案 1 :(得分:0)
您所做的错误是没有为PreparedStatement
设置占位符值。使用预准备语句的.setXXX
方法之一将值设置为预准备语句。然后它会将数据保存到数据库中。
您的问题标题具有误导性。您没有将swing组件保存到数据库中。您只保存该值。请更新问题标题。