Fre*_*man 0 java mysql jdbc prepared-statement
如何在没有时间的情况下将日期插入MySQL数据库表?我尝试了这些代码但是我得到以下异常:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Mar 05 00:00:00 GMT-08:00 2014,1,1)' at line 1
Run Code Online (Sandbox Code Playgroud)
注意:在MySQL表中,此列的数据类型我选择了date数据类型
String Date = "\\d\\d\\d\\d\\D[0-1][0-9]\\D[0-3][0-9]";
while (DateMatcher.find()) {
String date = DateMatcher.group().trim();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date myDate = formatter.parse(date);
db.insert_date(myDate,2,1);
}
Run Code Online (Sandbox Code Playgroud)
我只有日期部分查询插入日期的问题:
// insert DATE
public void insert_date(Date date_str, int sentence_id ,int document_id ){
// Statements allow to issue SQL queries to the database
try {
statement = connect.createStatement();
System.out.println( "insert into Date(date_Str,Sen_id,doc_id) " +
" values(" + date_str + "," + sentence_id + "," + document_id + ")"
);
statement.executeUpdate(
"insert into test.Date(date,Sen_id,doc_id)" +
" values(" + date_str + "," + sentence_id + "," + document_id + ")"
);
}
catch(Exception e ){System.out.println(e);};
// Result set get the result of the SQL query
}
Run Code Online (Sandbox Code Playgroud)
首先,要java.util.Date在Java中持久化数据库,您必须将其转换为java.sql.Date.关于JDBC SQL的幸运之Date处在于它是Java的子类Date.
因此,要创建一个java.sql.Datefrom java.util.Date,您必须这样做:
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);
Run Code Online (Sandbox Code Playgroud)
确保db.insert_date只接受java.sql.Date.
你必须在哪里打电话给你的PreparedStatement.setDate()功能.
请参阅相关问题java.util.Date vs java.sql.Date.
| 归档时间: |
|
| 查看次数: |
60188 次 |
| 最近记录: |