数据库中某个字段的列类型是json类型。

java类中某个属性是String类型。

在项目工程里加入下面这个:

/**
*这个类的第一个方法是对预处理语句(PreparedStatement)设置参数,之后的三个函数都是从ResultSet或*者用于执行存储过程的CallableStatement语句中获取String类型的数值,用于向Sring类型的
*Java字段赋值。
*这个Handler继承的BaseTypeHandler是个泛型类,其他的TypeHandler也是通过继承这个抽*象类,实现其中的抽象方法,实现类型转换的工作。
*
*参考链接:https://www.imooc.com/article/18514
*
*
/
public class JsonStringToStringTypeHandler extends BaseTypeHandler<String> {private Gson gson = new Gson();@Overridepublic void setNonNullParameter(PreparedStatement preparedStatement, int columnIndex, String parameter, JdbcType jdbcType)throws SQLException {preparedStatement.setString(columnIndex, gson.toJson(parameter));}@Overridepublic String getNullableResult(ResultSet resultSet, String columnName) throws SQLException {return deserialize(resultSet.getString(columnName));}@Overridepublic String getNullableResult(ResultSet resultSet, int columnIndex) throws SQLException {return deserialize(resultSet.getString(columnIndex));}@Overridepublic String getNullableResult(CallableStatement callableStatement, int columnIndex) throws SQLException {return deserialize(callableStatement.getString(columnIndex));}private String deserialize(final String json) {return gson.fromJson(json, String.class);}
}

然后在xml中加入:

<foreach collection="xxxxList" item="item" open="(" separator="or" close=")">JSON_CONTAINS(数据库json类型字段的名,#{传进来的参数, typeHandler=com.xx.xxx.JsonStringToStringTypeHandler},'$')</foreach>

也可以配置成:

<typeHandlers><typeHandler handler="com.xxxx.xxx.xxxxTypeHandler"/>
</typeHandlers>

Mybatis中TypeHandler的简单应用相关推荐

  1. Mybatis中强大的功能元素:resultMap

    转载自  Mybatis中强大的功能元素:resultMap 前言 在Mybatis中,有一个强大的功能元素resultMap.当我们希望将JDBC ResultSets中的数据,转化为合理的Java ...

  2. Mybatis中强大的resultMap

    本文来说下mybatis中的resultMap,在平时的开发中resultType使用的比较多.resultType在解决一对一的关系时候比较方便,但是在设计到多对多的时候,使用resultMap比较 ...

  3. mybatis的简单查询用语句吗_面试官:Mybatis中的TypeHandler你用过吗?

    前言 相信大家用Mybatis这个框架至少一年以上了吧,有没有思考过这样一个问题:数据库有自己的数据类型,Java有自己的数据类型,那么Mybatis是如何把数据库中的类型和Java的数据类型对应的呢 ...

  4. 使用mybatis中的自定义TypeHandler处理PostgreSQL中的Json类型

    postgres里的json格式 我们在使用postgres数据库时会使用到json格式来存放一些格式不固定的字段,postgres支持json和jsonb两种格式,两者的区别以后再说,今天说一下结合 ...

  5. 玩转Mybatis中的类型转换器TypeHandler

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 抛开使用场景谈技术都是耍流氓 1. 场景 日常java开发中经常有这种需求,用0或者1这些代 ...

  6. mybatis中ResultSetHandler的设计与实现

    ResultSetHandler主要处理statement,cursor,callstatement三种类型的结果集,其接口定义如下: public interface ResultSetHandle ...

  7. MyBatis中的selectKey

    2019独角兽企业重金招聘Python工程师标准>>> SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式. ...

  8. Java、Mysql、MyBatis 中枚举 enum 的使用

    From: https://yulaiz.com/java-mysql-enum/ Java 和 MySql 中都有枚举的概念,合理的使用枚举,可以让代码阅读和数据库数据查询更加直观.高效.那么我们怎 ...

  9. Mybatis中resultMap

    MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接 表示返回类型的,而resultMap则是对外部Result ...

最新文章

  1. 手机端自适应字体大小和元素宽度自适应
  2. python post请求 415_接收错误415:使用REST API发送GET请求时不支持媒体类型
  3. 本地连接Linux工具
  4. python使用md5加密_如何使用Python构建加密机器人并将其连接到Facebook Messenger
  5. 面向对象编程(六):数据封装
  6. Go Module 私有仓库:fatal: could not read Username for ‘https://xxx.com‘: terminal prompts disabled
  7. 【Zeekr_Tech】TARA攻击树分析方法论
  8. SIM7600CE-CNSE 4G模组发送英文短信
  9. GYM MaratonIME plays Chess 模拟
  10. 的脑袋里有台超级计算机,我的脑袋里有台超级计算机
  11. 西瓜视频地址分析下载(2020-10-29)
  12. C++实现简单的停车场管理系统
  13. Ubuntu-20.04 LTS 更换国内163源、阿里源、清华源、中科大源
  14. adress标签的使用
  15. bayaim_当前国内外Hadoop的实际使用案例
  16. JS中的各种遍历方法
  17. 强烈推介的几个微信小程序开发小技巧,简单又实用
  18. Grammer -- 疑问句
  19. SQL 注入漏洞检测与利用
  20. 科研素养:了解学术会议的形式和结构

热门文章

  1. 解决网站因调用谷歌字体库打开慢(适用wordpress和调用谷歌内容的网站)
  2. 7-8 等腰直角三角形 -- PTA
  3. android性能排行,2018年11月Android手机性能排行 麒麟980碾压高通蝉联前三
  4. vue移动端,使用canvas生成商品海报及自定义海报
  5. 《Android NFC开发实战详解》——6.4节Android NFC P2P开发进阶
  6. 逐步释放质疑怎么样释放std::vector所占用的内存空间
  7. Nacos Serve 本地启动报Error starting Tomcat context. Exception: org.springframework.beans.factory.BeanCre
  8. delphi编写dll
  9. d6.VUE基础20211229
  10. kickstart配置文件详解和system-config-kickstart