MySQLSyntaxErrorException:SQL插入语法错误

时间:2014-02-26 22:46:35

标签: java mysql csv

尝试使用java将csv中的值插入数据库时​​,我收到语法错误。这是我的代码

   try{
  BufferedReader br=new BufferedReader(new FileReader(filename1));
  String line;

  while((line=br.readLine())!=null){
  String[]value=line.split(",");//Seperator


  System.out.println(value[0]);
  System.out.println(value[1]);
  System.out.println(value[2]);



 if (programused == "Example"){





 String sql="insert into websitehistory (Date, URL, VisitCount) "
      + "values (?,?,?)";

 pst=conn.prepareStatement(sql);
 pst.setString(1, value[0]);
 pst.setString(2, value[1]);
 pst.setString(3, value[2]);  

  pst.executeUpdate(sql);

  Update_exampleTable();

 }

这是将分离值插入数据库的mysql查询。 Value是一个包含inted csv文件的数组,“filename1”

这是我的表结构:

Field          Type     Null    Key     Default      Extra
Date           text     No              NULL
URL            text     No              NULL
VisitCount     text     No              NULL

我要插入的csv文件中的数据类型:

31/01/2014  15:26:00,  https://www.youtube.com/,  13
31/01/2014  15:25:00,  https://www.youtube.com/,  17
30/01/2014  12:15:00,  https://www.facebook.com/, 20

然后抛出MySQL语法错误:

Check the manual that corresponds to your MySQL server version for the right syntax to use near '?,?,?)' at line 1.

如果我将?替换为value[0] value[1]等等,则会插入一些数据,但检索会在数据中产生不同的SQL语法错误,但在使用占位符时,不会插入任何数据进入表格。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

你应该致电:

pst.executeUpdate();

而不是:

pst.executeUpdate(sql);