我需要匹配数据库中的加密列。我需要将加密值作为byte []传递给匹配。传递byte []的哈希码而不是存储在byte []中的实际值。由于传递了哈希码,因此它与值无法正确匹配。下面是我的查询和Mapper.java中的函数调用。
AccBalNotificationBean selectAccBalNotificationBean(@Param("acctIdByteArray") byte[] acctIdByteArray);
SELECT toa.accounts_id from tbl_transactions_other_accounts toa WHERE other_account_number = #{acctIdByteArray}
感谢您的帮助。
答案 0 :(得分:2)
我假设您的other_account_number列的数据类型是string(char,varchar等)类型。 Mybatis默认使用StringDataTypeHandler并调用字节数组的.toString()方法。通过指定typeHandler,向MyBatis提示您希望使用数组内容。
.. WHERE other_account_number = #{acctIdByteArray, typeHandler=org.apache.ibatis.type.ByteArrayTypeHandler}