gpt4 book ai didi

java - 如何为字符数组传递 PreparedStatement setArray

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:12:09 26 4
gpt4 key购买 nike

我有一些 JDBC 代码如下:

String selectSQL = "SELECT * FROM DBUSER WHERE USER_ID = ? and PASSWORD = ?";

Integer userId = 1000;
char[] passwordString = new char[] { 't', 'e', 's', 't' };

PreparedStatement preparedStatement = dbConnection.prepareStatement(selectSQL);
preparedStatement.setInt(1, 1001);
preparedStatement.setArray(2,... ??? // how to do this part?

// execute select SQL statement
ResultSet rs = preparedStatement.executeQuery();

如何调用 preparedStatement.setArray 来设置查询中的第二个参数?我不想在这里使用字符串参数来保护密码。

请注意,我正在使用 Hypersonic DB,但如果这有用,我计划迁移到 MySql。

最佳答案

PreparedStatement#setArray收到一个java.sql.Array首先,您应该使用 JDBC Conncetion 的 createArrayOf方法来创建数组,然后才能将它传递给 setArray

由于该方法只接受 Object[],您应该创建一个 Character 数组而不是 char。

例如:

Character[] passwordString = new Character[] { 't', 'e', 's', 't' };
Array sqlArray = con.createArrayOf("CHAR", passwordString);
preparedStatement.setArray(2, sqlArray);

关于java - 如何为字符数组传递 PreparedStatement setArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13973212/

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