gpt4 book ai didi

JAVA postgresql 将 String[] 插入到 text[] postgresql 单元格

转载 作者:行者123 更新时间:2023-12-02 04:35:13 25 4
gpt4 key购买 nike

我正在尝试将项目的图像名称存储在 postgresql DB 中。

这是我的查询:

    Statement st = conn.createStatement();                
String queryString = "INSERT INTO goods (item_title, item_descr, item_email, item_phone, item_images, item_price) " +
"VALUES ("+item.title.trim()+
"\',\'"+item.descr.trim()+
"\',\'"+item.email.trim()+
"\',\'"+item.phone+
"\',"+item.images+
","+item.price+");";
int rowsUpdated = st.executeUpdate(queryString);

“item.images”在模型中定义为字符串数组public String images[];它从 JSON post 接收一个值,如下所示:“图像”:[“6307839405_3wefb6ef051_o.jpg”,“8715662693_1c41ewf6f7d_o.jpg”,“15wef131f4574e383fb46b68.jpg”],“

item_images 在数据库中定义为“text[]”数组列。

所以,我将 String 数组放入 text[] 列中。看起来应该可以吗?

但我收到此错误:

ERROR: syntax error at or near "["
Position: 189

那么,如果问题在于我如何做到这一点 - 我如何正确地需要将此数组存储在数据库中?

最佳答案

我的建议是不要像您现在所做的那样通过字符串连接来构建 SQL 语句。我会使用PreparedStatement 类,它提供了处理如此多不同类型(如数组)的方法,并且它带来了额外的好处,例如防止邪恶用户的值注入(inject)。

例如,您的代码将类似于:

PreparedStatement statement=DataBaseConnector.getConnection().prepareStatement(
"INSERT INTO goods (item_title, item_descr, item_email, item_phone, item_images, item_price)
VALUES ( ? , ? , ? , ? , ? , ? )");
int index=1;
statement.setString(index++,item.title.trim());
statement.setString(index++,item.descr.trim());
statement.setString(index++,+item.email.trim());
statement.setString(index++,item.phone); //Assuming it is a String
statement.setArray(index++,item.images);
statement.setDouble(index++,item.price); //Assuming it is a Double
int rowsUpdated = statement.executeUpdate()

希望对你有帮助克里斯。

关于JAVA postgresql 将 String[] 插入到 text[] postgresql 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30911703/

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