Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 将从文件中提取的数组输入数据库表_Java_Mysql_Arrays - Fatal编程技术网

Java 将从文件中提取的数组输入数据库表

Java 将从文件中提取的数组输入数据库表,java,mysql,arrays,Java,Mysql,Arrays,我的目标是获取一个文件并从文件中分割值,然后将值输入到数据库表中 我创建了一个示例表empp,其中包含两列empname、empid。我连接到数据库并尝试插入来自“eclipse”的查询 现在我有了文件fr.txt。当我读取文件、拆分值并将其存储在数组中时,我无法在insert查询中使用数组索引 这是我的密码: try{ FileReader fr=new FileReader("C:\\Users\\Priyanka Sethi\\Desktop\\fr.txt"); Buff

我的目标是获取一个文件并从文件中分割值,然后将值输入到数据库表中

我创建了一个示例表
empp
,其中包含两列
empname、empid
。我连接到数据库并尝试插入来自“eclipse”的查询

现在我有了文件
fr.txt
。当我读取文件、拆分值并将其存储在数组中时,我无法在insert查询中使用数组索引

这是我的密码:

try{
    FileReader fr=new FileReader("C:\\Users\\Priyanka Sethi\\Desktop\\fr.txt");
    BufferedReader br=new BufferedReader(fr);
    String str;
    str=br.readLine();
    while((str=br.readLine())!=null){
        System.out.println(str+"\n");       
        String [] array = str.split("\\,");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]); 
        }
        String a=array[0];
        Integer b=Integer.parseInt(a);
        String c=array[1];
        Connection con=getConnection();
        PreparedStatement posted=con.prepareStatement("INSERT INTO empp(empid,empname)VALUES(b,'c')");
        posted.executeUpdate();
    }
} catch(Exception e){
    System.out.println(e);
} finally {
    System.out.println("insertion completed");
}
试试看{
FileReader fr=new FileReader(“C:\\Users\\Priyanka Sethi\\Desktop\\fr.txt”);
BufferedReader br=新的BufferedReader(fr);
字符串str;
str=br.readLine();
而((str=br.readLine())!=null){
System.out.println(str+“\n”);
字符串[]数组=str.split(“\\,”);
for(int i=0;i
问题在于如何将值放入
PreparedStatement

你有:

PreparedStatement posted=con.prepareStatement("INSERT INTO empp(empid,empname)VALUES(b,'c')");
…实际上没有使用您在上面几行中创建的变量
b
c
。相反,尝试使用和方法

有关完整示例,请查看以下内容:

在您的情况下,在不实际运行代码进行测试的情况下,我会将该行更改为如下所示:

PreparedStatement posted=con.prepareStatement("INSERT INTO empp(empid,empname)VALUES(?,?)");
posted.setInt(1, b.intValue());
posted.setString(2, c);

免责声明
始终、始终、始终验证、清理用户的任何输入。不要在程序外部提供的任何查询中直接使用值,也不要对用户将输入的内容进行任何假设。这样做会使您面临大量漏洞。从一开始就使用良好的实践非常重要

“我无法使用数组索引”你是什么意思?您是否得到了一个可以添加到问题中的异常?您可以发布文件中的示例数据吗?还请阅读一些有关清理SQL数据的参考资料。这将使您在竞争中处于领先地位。虽然我的建议不能回答直接的问题,但我强烈建议您添加一条关于插入从程序外部读取的值的免责声明。这将使这个答案变得更好。这是新程序员在系统中引入的一个大漏洞,这些漏洞以后会被破坏。@Aaron啊,是的,这绝对是一个需要添加的重要注意事项-感谢提醒您这么做!我没想到它会出现在这么响亮的公告板上,但这仍然会得到+1。@Aaron需要注意的重要提示:)