【发布时间】:2012-12-20 13:25:57
【问题描述】:
我有一些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。
【问题讨论】:
-
我不确定你想这样做。
-
为什么?我希望避免使用
String,因为我知道将密码合二为一存在一定的安全风险。 -
这种情况下没有问题,如果不使用preparedstatement(sql注入)就有问题
-
我认为加盐和加密的密码会更好。