如何将值(JTextField& JXDatePicker)存储到MySQL数据库中?

时间:2015-03-12 06:37:45

标签: java mysql swing

请帮我执行这个程序:

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数据库中保存这些组件时出错。这个程序的正确编码是什么?

2 个答案:

答案 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组件保存到数据库中。您只保存该值。请更新问题标题。