gpt4 book ai didi

java - 将 java 集合保存在数据库中

转载 作者:行者123 更新时间:2023-12-01 00:04:33 24 4
gpt4 key购买 nike

我创建了一个 java 集合(命名集合),但无法将其保存到数据库中。我认为最简单的方法是通过发送如下查询在 Persons 表中一个一个地插入集合对象(使用 for each 循环):

for (Person p: collection){
statement.executeUpdate("INSERT INTO Persons (Name,Surname,ID,Phone) values (a.getName(),a.getSurname(),a.getID(),a.getPhone();");
}

但我在编译时收到此错误:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:您的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的 '' 附近使用的正确语法

a.getName()、a.getSurname()、a.getID()、a.getPhone() 是 getter,有没有办法在 sql 查询中使用它们?

最佳答案

使用准备好的语句:

Connection conn = DriverManager.getConnection(url);
String insert = "INSERT INTO Persons (Name,Surname,ID,Phone) values (?,?,?,?);";
PreparedStatement pStmnt = conn.prepareStatement(insert);
pstmnt.setString(1,a.getName());
pstmnt.setString(2,a.getSurname());
pStmnt.setInt(3,a.getId());
pStmnt.setString(3,a.getPhone());

pStmnt.execteUpdate();

准备好的语句防止SQL Injection并且应该尽可能多地使用。

你可以毫无困难地将它包装在一个循环中——只要确保你的对象引用了正确的东西:

for(Person p : collection{
pstmnt.setString(1,p.getName());
pstmnt.setString(2,p.getSurname());
pStmnt.setInt(3,p.getId());
pStmnt.setString(3,p.getPhone());

pStmnt.execteUpdate();
}

关于java - 将 java 集合保存在数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20801706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com