@Column(columnDefinition= "BLOB", name="address" ) @ColumnTransformer(read = "CAST(AES_DECRYPT(address, '$*^@!#') as char(1000))", write = "AES_ENCRYPT(?, '$*^@!#')" ) public String getAddress() { return address; }
说明:
@ColumnTransformer:用于对数据进行sql层处理
AES_DECRYPT:解密,第一个参数为列名,第二个参数为密钥,解密之后在mysql中应该也是bolb所以需要加上CAST来强转为java可以直接接收的char类型
AES_ENCRYPT:加密,加密之后是blob类型所以数据库中需使用blob来存储