我输入了以下代码。我的目标是以 dd/MM/yyyy 格式在 mySQL 中存储日期。但mySQL一般取yyyy/MM/dd。
String d=(((JTextField)jDateChooser1.getDateEditor().getUiComponent()).getText());
Statement stmt = db.conn.createStatement();
String sql = "insert into diag.current " +
"values'"+col1+"','"+col2+"','"+java.sql.Date.valueOf(d)+"','"+col4+"')";
stmt.executeUpdate(sql);
我右键单击 jDateChooser1 并单击“自定义代码”,然后输入:
jDateChooser1= new com.toedter.calendar.JDateChooser("dd/MM/yyyy","##/##/####",'_');
现在请让我知道我在哪里犯了错误。如果有人解决这个问题,我将不胜感激。提前致谢。我希望我描述得很清楚......
最佳答案
应该是类似下面的内容。最好列出列名称,以便将来对表进行更改并提高可读性。 (
在代码中丢失了。使用准备好的语句可以转义字符串并防止 SQL 注入(inject)。对于日期、整数等,它也是有益的。
java.sql.Date date = new java.sql.Date(SimpleDateFormat("dd/MM/yyyy").parse(d).getTime());
PreparedStatement stmt = db.conn.createPreparedStatement();
String sql = "INSERT INTO diag.current (COL1, COL2, COL3, COL4) VALUES(?, ?, ?, ?)";
PreparedStatement stmt = db.conn.createPreparedStatement();`
stmt.setString(1, col1);
stmt.setString(2, col2);
stmt.setDate(3, date);
stmt.setString(4, col4);
stmt.executeUpdate();
stmt.close();
我在您的帮助下编辑了我的程序,如下所示:
java.sql.Date date = new java.sql.Date(SimpleDateFormatter("dd/MM/yyyy").parse(d).getTime());
PreparedStatement stmt = db.conn.prepareStatement();
String sql = "INSERT INTO diag.current (name, patientID, address, sex, phone, vip, email, purpose, history, tests, doc, charges, status, dob, nextapp) " +
"VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement stmt = db.conn.createPreparedStatement();
stmt.setString(1, name);
stmt.setString(2, id);
stmt.setString(3, add);
stmt.setString(4, sex);
stmt.setString(5, ph);
stmt.setString(6, vip);
stmt.setString(7, mail);
stmt.setString(8, pur);
stmt.setString(9, phis);
stmt.setString(10, tests);
stmt.setString(11, dc);
stmt.setInt(12, total);
stmt.setString(13, status);
stmt.setDate(14, date);
stmt.setDate(15, date);
stmt.executeUpdate();
stmt.close();
问:但是 SimpleDateFormatter
和 createPreparedStatement
不支持,我应该使用哪个导入?
答:错别字,应该是
java.text.SimpleDateFormat
con.prepareStatement
关于java - 通过Netbeans将日期存储在mySQL中为dd/MM/yyyy格式,但是mySQL一般采用yyyy/MM/dd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17808875/