Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.SQLException:参数索引超出范围(1>;参数数,即0)_Java_Mysql_Csv_Sql Insert - Fatal编程技术网

java.sql.SQLException:参数索引超出范围(1>;参数数,即0)

java.sql.SQLException:参数索引超出范围(1>;参数数,即0),java,mysql,csv,sql-insert,Java,Mysql,Csv,Sql Insert,我已经编写了一个java jframe程序,允许您输入一个csv文件,然后将其上载到本地数据库,但是我无法将所有数据插入数据库。你知道我哪里会出错吗 try{ BufferedReader br=new BufferedReader(new FileReader(filename1)); String line; while((line=br.readLine())!=null){ String[]value=line.split(",");//Seperator file

我已经编写了一个java jframe程序,允许您输入一个csv文件,然后将其上载到本地数据库,但是我无法将所有数据插入数据库。你知道我哪里会出错吗

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

  while((line=br.readLine())!=null){
  String[]value=line.split(",");//Seperator
filename1是从jFilechooser中选择的csv文件

   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]);  
下面是将分离的值插入数据库的mysql查询

这是我的表格结构:

Date           Varchar(244)
URL            VarChar(244)
VisitCount     VarChar(244)
我想插入的数据类型是:

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

非常感谢您提供的任何帮助

您应该在准备好的语句中使用占位符,而不是直接转储值

这是错误的:

String sql="insert into websitehistory (Date, URL, VisitCount) "
          + "values ('"+value[0]+"','"+value[1]+"','"+value[2]+"')";
将其更改为:

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

您应该有占位符用于准备好的语句,但不能直接转储值

这是错误的:

String sql="insert into websitehistory (Date, URL, VisitCount) "
          + "values ('"+value[0]+"','"+value[1]+"','"+value[2]+"')";
将其更改为:

String sql="insert into websitehistory (Date, URL, VisitCount) "
          + "values ( ?, ?, ? )";
尝试此查询

String sql="insert into websitehistory (Date, URL, VisitCount) "
      + "values (?, ?, ?)";
尝试此查询

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

检查添加到准备好的语句中的参数。您可能希望在sql查询中使用
而不是每个
“+value[i]+”
。这样,您以后可以使用
setXXX(number,value)
替换为正确的值。检查添加到准备好的语句中的参数。您可能希望在sql查询中使用
而不是每个
“+value[i]+”
。这样,您以后可以使用
setXXX(number,value)
使用正确的值替换
。将其更改为:String sql=“insert into websitehistory(Date,URL,VisitCount)”+“values(?,?)”;但是在第1行出现错误“检查正确的语法以便在“?,?,?)”附近使用。可能是插入的数据还是我的数据库的格式?提供表结构和试图插入的数据可能会有用。请编辑您的问题并添加这些信息。将其更改为:String sql=“insert into websitehistory(日期、URL、VisitCount)“+”值(?,?),但在第1行出现错误“请检查正确的语法以在“?,?,?)”附近使用”。可能是插入的数据还是数据库的格式?提供表结构和试图插入的数据可能会很有用。请编辑您的问题并添加这些信息。