java 调用mysql函数_java中直接调用mysql的解密函数。 JDBC 不能识别到对应的列名,报错!...

数据表test中,data列存放的是mysql自带ENCODE函数加密的数据,想要实现查询直接返回解密后的数据,利用自带DECODE函数。sql语句:SELECTid,DECODE(data,?)FROMtest?用pstmt.setStrin...

数据表 test 中,data 列存放的是mysql自带ENCODE函数加密的数据,想要实现 查询直接返回解密后的数据,利用自带DECODE函数。

sql 语句:SELECT id,DECODE(data,?) FROM test

? 用 pstmt.setString(1, key) 替换成密钥; 在mysql 脚本中,查询可返回数据,正常。

但是在eclipse 调用就不行。

----------------下面为eclipse 报错---------------

sql:SELECT id,DECODE(data,?) FROM test

java.sql.SQLException: Column 'data' not found.

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1094)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:997)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:983)

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:928)

at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1162)

at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5728)

at com.cpic.test.mysqlTest.DECODE(mysqlTest.java:164)

at com.cpic.test.mysqlTest.main(mysqlTest.java:26)

----------------- 报错结束--------------------------------------

我把sql 语句改成 :SELECT * FROM test where DECODE(data,?)=?

第一个 ? 为 key, 第二? 为 正常数据用来比对。

换成 第二种sql 语句后,eclipse可以实现,但是返回的数据是加密的,所以没用。

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值