如何在MyBatis中的sql查询中传递byte []参数类型?

时间:2012-03-02 06:25:22

标签: mybatis

我需要匹配数据库中的加密列。我需要将加密值作为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}

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我假设您的other_account_number列的数据类型是string(char,varchar等)类型。 Mybatis默认使用StringDataTypeHandler并调用字节数组的.toString()方法。通过指定typeHandler,向MyBatis提示您希望使用数组内容。

.. WHERE other_account_number = #{acctIdByteArray, typeHandler=org.apache.ibatis.type.ByteArrayTypeHandler}