使用 setObject(index,object) 将值绑定到preparedstatement 使用MySQL 可以正常工作,但不能使用Oracle。
preparedStatement.setObject(i, bindValue);
下面是附加绑定变量后构建的查询。
select ACC_NO from ACC_TABLE where ACC_NAME='java.lang.String';
它正在尝试转换为java.lang.String
类型,这会导致以下异常:
java.sql.SQLException:无法执行 sql 命令 - 原始消息:null
而我的 ACC_NAME 是“user01”。
所以实际上查询应该是这样的,
select ACC_NO from ACC_TABLE where ACC_NAME='user01';
所以,如果我的理解没有错的话,preparedStatement.setObject(index, object)
就是将数据转换为其各自的数据类型并进行设置。
preparedStatement.setObject(index, object)
在 MySQL 中运行良好,没有任何问题。
唯一的问题是在使用 Oracle 时。
我正在使用的 Oracle DB 版本是:
Oracle Database 11g Express Edition 版本 11.2.0.2.0 - 生产PL/SQL 版本 11.2.0.2.0 - 用于 32 位 Windows 的
生产“CORE 11.2.0.2.0 生产” TNS:版本 11.2.0.2.0 - 生产 NLSRTL 版本 11.2.0.2.0 - 生产