java - 通过Netbeans将日期存储在mySQL中为dd/MM/yyyy格式,但是mySQL一般采用yyyy/MM/dd

标签 java swing

我输入了以下代码。我的目标是以 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();

问:但是 SimpleDateFormattercreatePreparedStatement 不支持,我应该使用哪个导入?

答:错别字,应该是

java.text.SimpleDateFormat
con.prepareStatement

关于java - 通过Netbeans将日期存储在mySQL中为dd/MM/yyyy格式,但是mySQL一般采用yyyy/MM/dd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17808875/

相关文章:

java - 带有重置选项的 Android java.util.Timer

java - Spring XML 配置 - 如何定义 Instant、BigDecimal、...参数?

java - Swing 窗口被卡住,不显示内容

java - 将 JScrollBar/JScrollPane 添加到此 JTextPane 时遇到问题

Java KeyBindings 对 JPanel 没有反应

java - Java接口(interface)是抽象类吗?

java - 是否可以将 spring-mvc 中的嵌套映射映射到全局路径?

java - antMatcher() 与 antMatchers() 的 Spring 安全应用

java - 请求关键监听器的焦点,不确定我是否有焦点?

java - 在 JNA 中创建对象 C_CreateObject 时会发生奇怪的事情 [PKCS11]