【发布时间】:2014-02-26 22:46:34
【问题描述】:
我在尝试使用 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 查询。值是一个数组,包含输入的 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 语法错误,但在使用占位符时,不会将任何数据插入表中。任何帮助都会很棒。
【问题讨论】: