gpt4 book ai didi

java - 方法 createArrayOf 的 mysql JDBC 驱动程序出错

转载 作者:搜寻专家 更新时间:2023-10-30 23:09:20 26 4
gpt4 key购买 nike

我是一名初级 Java 程序员。在我的虚拟项目中,我使用 mysql JDBC 5.17 驱动程序连接到我的数据库

今天我有一个简单的查询

SELECT * FROM books WHERE idb IN (?)

我有这个整数数组:

int[2] idBooks = new int{1,2};

我会选择 idBooks 中带有 id 的书籍

当我使用 API“createArrayOf”时,JVM 在控制台上抛出此错误:

  java.sql.SQLFeatureNotSupportedException

我知道我的驱动程序不支持“createArrayOf”方法,还有其他解决方案吗?

我希望我的问题不是微不足道的:)

提前致谢,对不起我的英语谢谢大家!!

最佳答案

一种可能的解决方案:

Java:

// str_idBooks will be [1, 2]
String str_idBooks = Arrays.toString( idBooks );

您必须从字符串中替换 '['' '(空格)、']' 以传递给 MySQL 查询。

MySQL:

如果你没有按照上面说的替换字符,使用这个语句:

SELECT * FROM books
WHERE FIND_IN_SET( idb,
replace(replace(replace(?,'[',''),']',''),' ','')
) > 0

如果您已经按照上述方式替换了字符,请使用此语句:

SELECT * FROM books
WHERE FIND_IN_SET( idb, ? ) > 0

使用Prepared Statement设置参数为:

pst.setString( 1, str_idBooks );

关于java - 方法 createArrayOf 的 mysql JDBC 驱动程序出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22066316/

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