gpt4 book ai didi

Java 将 ids 数组添加到 SQL Server 的准备语句中

转载 作者:行者123 更新时间:2023-11-30 06:55:49 26 4
gpt4 key购买 nike

我使用 MSSQL SERVER 从事 Java 1.7 项目。

我尝试将 id 数组添加到查询中:

List<String> ids = new ArrayList<String>(3);
ids.add("32123");
ids.add("4455");
ids.add("1258");
String sqlStatement = "SELECT * FROM databaseName
WHERE id IN(?)";
Connection c = null;
PreparedStatement s = null;
ResultSet rs = null;
try {
Object[] objArr = new Object[ids.size()];
objArr = ids.toArray(objArr);
c = bbbDataSource.getConnection();
s = c.prepareStatement(sqlStatement);
Array array = c.createArrayOf("VARCHAR", objArr);
s.setArray(1, array);
rs = s.executeQuery();
}

我得到的错误是这样的:

Exception thrown bean: java.lang.abstractMethodError: net.sourceforge.jtds.jdbcx.proxy.ConnectionProxy.createArrayOf(LJava/lang/String:[LJava/lang/Object:)LJava/lang/Array;

我做错了什么?

最佳答案

基本上,您不能将 createArrayOf 方法与 jTDS 库一起使用。您必须使用不同的数据库驱动程序库。

证据(从 net.sourceforge.jtds.jdbc.JtdsConnection 提取的代码):

/* (non-Javadoc)
* @see java.sql.Connection#createArrayOf(java.lang.String, java.lang.Object[])
*/
public Array createArrayOf(String typeName, Object[] elements) throws SQLException {
// TODO Auto-generated method stub
throw new AbstractMethodError();
}

您可以使用类似 https://learn.microsoft.com/en-us/sql/connect/jdbc/microsoft-jdbc-driver-for-sql-server 的内容因为您使用的是 SQL Server。

另一个选择是 OscarRyz 的回答 PreparedStatement with list of parameters in a IN clause

关于Java 将 ids 数组添加到 SQL Server 的准备语句中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41848191/

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