高洛峰2017-04-18 10:37:21
このような要件を満たすために MyBatis
結果セット インターセプターを使用します: MyBatis
结果集拦截器做过这样一个需求:
由于项目需求经常变动,项目MySQL数据库都是存放JSON字符串,例如:用户的基本信息随着版本升级可能会有变动
CREATE TABLE `account` (
`id` bigint(11) unsigned NOT NULL AUTO_INCREMENT,
`infos` text NOT NULL COMMENT '用户JSON基本信息',
`createTime` int(10) unsigned NOT NULL COMMENT '创建时间',
`updateTime` int(10) unsigned NOT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
数据:
id | infos | createTime | updateTime |
---|---|---|---|
1 | {"nickName":"Jan","region_area":"","region_city":"深圳市","region_country":"中国","region_province":"广东省","sex":"男","signature":"只要不放弃就还有机会!"} | 1467793564 | 1470795733 |
使用MyBatis
拦截器对ResultSetHandler
接口的handleResultSets
プロジェクトの要件が頻繁に変更されるため、プロジェクトの MySQL データベースには、たとえば、バージョンのアップグレードによってユーザーの基本情報が変更される可能性があります。 データシート
リーリー
データ:MyBatis
インターセプターを使用して、ResultSetHandler
インターフェイスの handleResultSets
メソッドをインターセプトします。
リーリー
🎜mybatis-config.xml🎜
🎜mybatis設定ファイルにプラグインを登録します: 🎜
リーリー
🎜テスト出力🎜
リーリーPHP中文网2017-04-18 10:37:21
Mybatis
を使用して次の要件を達成しますMybatis
实现过如下需求
查询用户基本信息表,查询结果返回是List<Map<String,Object>>的结果集,对其中的某个字段进行加密
CREATE TABLE usr_basic_inf(
USR_ID VARCHAR(20) NOT NULL COMMENT '用户ID,01+18位互斥随机数' ,
USR_REAL_NME VARCHAR(50) NOT NULL COMMENT '用户真实姓名' ,
CERT_TYPE VARCHAR(4) COMMENT '证件种类' ,
CERT_NO VARCHAR(100) COMMENT '证件号码' ,
RES_FLD VARCHAR(300) COMMENT '预留字段 ' ,
PRIMARY KEY(USR_ID)
) COMMENT='用户基础信息表';
USR_ID | USR_REAL_NME | CERT_TYPE | CERT_NO | RES_FLD |
---|---|---|---|---|
01000000000000000001 | 张三 | 0101 | 101222010199913291 | (NULL) |
使用Mybatis
对Executor.class
的'qurey'
ユーザー基本情報テーブルをクエリすると、クエリ結果は List<Map<String,Object>> の結果セットを返し、その中の特定のフィールドを暗号化しますデータシート
リーリー
データMybatis
を使用して、Executor.class
の 'qurey'
メソッドをインターセプトし、返された結果セットを処理します🎜
リーリー
🎜mybatis-config.xml🎜
🎜mybatis設定ファイルにプラグインを登録します: 🎜
リーリー
🎜テスト出力🎜
リーリー