[英]how to format date and time from JDateChooser to mysql datetime column
我正在嘗試將JDateChooser的當前日期和時間存儲到mysql數據庫中,但是它僅插入今天的日期,而當前時間是00:00:00
java.util.Date dt1,dt2;
String n=name.getText();
String i=id.getText();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
dt1=jDateChooser1.getDate();
dt2=jDateChooser2.getDate();
String strdtver1=(String) sdf.format(jDateChooser1.getDate());
String strdtver2=(String) sdf.format(jDateChooser2.getDate());
try {
Class.forName("com.mysql.jdbc.Driver");
Connection con= (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/testing","root","");
Statement stmt=con.createStatement();
String sql="Insert into ss values('"+(n)+"','"+(strdtver1)+"','"+(strdtver2)+"','"+(i)+"');";
stmt.executeUpdate(sql);
JOptionPane.showMessageDialog(this, "RECORD ENTERED SUCCESSFULLY");
} catch(Exception e) {
JOptionPane.showMessageDialog(this,e.getMessage());
}
這是一個存儲簽入和簽出日期和時間的程序。 mysql中的數據類型是Check_in和Check_out的日期時間。 在我的sql的Check_in列中輸入的數據是2014-10-27 00:00:00。 當前日期是正確的,但我想插入當前時間而不是00:00:00。請幫助我。
您正在使用SimpleDateFormat
格式化從窗口小部件獲得的日期,但是您僅使用日期模式作為格式字符串。 對於mysql支持的日期和時間字符串格式,請使用:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
您不應該將Date對象轉換為Strings。 而是將它們傳遞給PreparedStatement:
try (PreparedStatement statement =
con.prepareStatement("insert into ss values ?, ?, ?, ?")) {
statement.setString(1, n);
statement.setDate(2, dt1);
statement.setDate(3, dt2);
statement.setString(4, i);
statement.executeUpdate();
}
另外,強烈建議在存儲用戶數據時使用PreparedStatement,因為它可以防止稱為SQL Injection的嚴重惡意攻擊媒介。 (想象一下,如果用戶輸入的姓名為', null, null, null; delete from ss; insert '
。)
public void calendarExpale(){
JPanel content = new JPanel();
content.setLayout(new FlowLayout());
final JTextField textField = new JTextField(15);
JDateChooser chooser = new JDateChooser();
Date d1=(Date)chooser.getDate();
chooser.setSize(15, 10);
chooser.addPropertyChangeListener("date", new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent evt) {
JDateChooser chooser = (JDateChooser)evt.getSource();
SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:MM:SS");
textField.setText(formatter.format(chooser.getDate()));
}
});
content.add(textField);
content.add(chooser);
}
這是我使用過的最簡單的方法。 您無需執行任何其他操作。
statement.setString(2,((JTextField) jDateChooser1.getDateEditor().getUiComponent()).getText());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.