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需要注意的重要提示:)