How to insert Date into MySQL Database table in Java?

后端 未结 2 1140
离开以前
离开以前 2021-01-07 01:28

How do I insert date, without time, to MySQL database table? I tried these codes but I get the following exception:

com.mysql.jdbc.exceptions.jdbc4.MySQLSynt         


        
相关标签:
2条回答
  • 2021-01-07 02:04

    First of all, to persist a java.util.Date into a database in Java, you will have to convert it to java.sql.Date. The fortunate thing about JDBC SQL Date is that it's a subclass of Java Date.

    Therefore, to create a java.sql.Date from java.util.Date, you will have to do this:

    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    Date myDate = formatter.parse(date);
    java.sql.Date sqlDate = new java.sql.Date(myDate.getTime());
    
    db.insert_date(sqlDate);
    

    Make sure that db.insert_date accepts only java.sql.Date.

    Where you will have to call your PreparedStatement.setDate() function.

    See the related question java.util.Date vs java.sql.Date.

    0 讨论(0)
  • 2021-01-07 02:11

    NEVER use java.sql.Statement for insert data. Use ALWAYS java.sql.PrepartedStatement. This because is a better way to avoid SQL Injection (see this for an explain). So, in your case, you can insert the date in this way:

    statement = connect.prepareStatement("INSERT INTO test.Date(date, Sen_id, doc_id) VALUES(?, ?, ?)");
    statement.setDate(1, new java.sql.Date(date_str.getTime());
    statement.setInt(2, sentence_id);
    statement.setInt(3, document_id);
    
    
    0 讨论(0)
提交回复
热议问题