Java JDBC-从文本文件加载数据

Java JDBC-从文本文件加载数据,java,mysql,jdbc,Java,Mysql,Jdbc,我试图通过Java将数据从文本文件加载到MySQL数据库。到目前为止,我有以下代码。当我运行此操作时,它成功地从文件中读取数据并将其打印出来,但随后它会出现此错误,并且没有数据添加到数据库: 线程“main”java.lang.IllegalArgumentException中出现异常 位于java.sql.Date.valueOf(Date.java:143) 位于jdbc.jdbc.main(jdbc.java:81) 很明显,您的问题在于标记[1]字符串的格式 您正试图从与可接受格式不匹配

我试图通过Java将数据从文本文件加载到MySQL数据库。到目前为止,我有以下代码。当我运行此操作时,它成功地从文件中读取数据并将其打印出来,但随后它会出现此错误,并且没有数据添加到数据库:

线程“main”java.lang.IllegalArgumentException中出现异常
位于java.sql.Date.valueOf(Date.java:143)
位于jdbc.jdbc.main(jdbc.java:81)


很明显,您的问题在于
标记[1]
字符串的格式

您正试图从与可接受格式不匹配的字符串创建
java.sql.Date对象

例如,如果您的字符串是这样的:
21/12/2002
,它将抛出一个运行时异常,就像您已经遇到的一样。要使其正常工作,您必须解析您的字符串,以便
java.sql.Date.valueOf
方法能够读取该字符串

例如:

SimpleDateFormat textFormat = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date myDate = textFormat.parse(tokens[1]);
when = new java.sql.Date(myDate.getTime());
作为旁注,
parse()
方法
抛出ParseException
,因此请确保将代码包含在相关的
try/catch块中,或者使您的方法
抛出此异常


希望这有帮助

异常源于行号143。如果给定的日期不是JDBC日期转义格式(yyyy-[m]m-[d]d),则会引发IllegalArgumentException。根据valueOf()方法规范,令牌[1]的格式不正确

SimpleDateFormat textFormat = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date myDate = textFormat.parse(tokens[1]);
when = new java.sql.Date(myDate.getTime());