検索

ホームページ  >  に質問  >  本文

java - 关于mybatis拦截器,有谁知道怎么对结果集进行拦截,将指定字段查询结果进行格式化

阿神阿神2803日前841

全員に返信(2)返信します

  • 高洛峰

    高洛峰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

    JSONPlugin拦截器

    使用MyBatis拦截器对ResultSetHandler接口的handleResultSets

    プロジェクトの要件が頻繁に変更されるため、プロジェクトの MySQL データベースには、たとえば、バージョンのアップグレードによってユーザーの基本情報が変更される可能性があります

    。 データシート

    リーリー

    データ:

    <テーブル> <頭> id 情報 createTime 更新時間 1 {"nickName":"1 月","re​​gion_area":"","re​​gion_city":"深セン市","re​​gion_country":"中国","re​​gion_province":"広東省", "sex":"male","signature":"諦めなければまだチャンスはある!"} 1467793564 1470795733

    JSONプラグインインターセプター🎜 🎜MyBatis インターセプターを使用して、ResultSetHandler インターフェイスの handleResultSets メソッドをインターセプトします。 リーリー 🎜mybatis-config.xml🎜 🎜mybatis設定ファイルにプラグインを登録します: 🎜 リーリー 🎜テスト出力🎜 リーリー

    返事
    0
  • PHP中文网

    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)

    使用MybatisExecutor.class'qurey'

    ユーザー基本情報テーブルをクエリすると、クエリ結果は List<Map<String,Object>> の結果セットを返し、その中の特定のフィールドを暗号化します

    データシート

    リーリー

    データ

    <テーブル> <頭> USR_ID USR_REAL_NME CERT_TYPE CERT_NO RES_FLD 01000000000000000001 張三 0101 101222010199913291 (NULL)

    Mybatis を使用して、Executor.class'qurey' メソッドをインターセプトし、返された結果セットを処理します🎜 リーリー 🎜mybatis-config.xml🎜 🎜mybatis設定ファイルにプラグインを登録します: 🎜 リーリー 🎜テスト出力🎜 リーリー

    返事
    0
  • キャンセル返事