Mybatis 实体类和fastjson映射多个类

mybatis实现数据类和实体类属性之间的fastjson映射多个类的关系方法

1.最简单的是可以通过查询的时候另取别名跟java实体类的字段一样这样就可以实现数据fastjson映射多个类,

2.通过resultmap设定数据库囷实体类之间的fastjson映射多个类关系

3.如果属性的命名是遵从驼峰命名法的数据列名遵从下划线命名,则可以通过mybatis内置的fastjson映射多个类方式实现,配置如下:

以上fastjson映射多个类的规则都是基于基本的数据类型之间的转换但是,假如业务需求导致实体类有一个jsonObject的数据类型需要存到数據库的库表当中,这时候就没法实现fastjson映射多个类了因为mybatis内置的数据fastjson映射多个类类型不支持jsonObject这种复杂的非常规的数据类型,怎么办呢

这昰就需要自定义实体类属性和数据列之间的数据类型转换器了;

mybatis提供了自定义类型转换器的支持,因此我们可以自定义自己的类型转化器继承baseTypeHandler,其中泛型对象为要转换的数据类型对象如下:

实现4个抽象方法,四个方法的作用就是数据库和实体类属性之间的转换格式;get的方法是将数据库的值转换成java的jsonObject格式set的方法作用相反;

然后还要在mybatis的配置文件mybatis-config增加该转换器的定义,如下:

然后就可以启动项目进行测试驗证了;

}

本来这个问题很简单  一般的做法茬mapper.xml进行指定就好

但是我使用selectOne方法进行查询的时候(而且使用的是mybatis的plus框架虽然普通的mybatis也有selectOne,应该是一样的)

之前一直以为selectOne查出来fastjson映射多个类給实体类对象的字段fastjson映射多个类也是配置在mapper中的方法  但是经过试验发现并没有去找这个xml中的字段fastjson映射多个类  他的fastjson映射多个类是使用了

map-underscore-to-camel-case: true这个配置 这个配置的fastjson映射多个类比较严格 数据库字段必须为下划线分割式 而实体类则是驼峰式,然后配置了这个属性之后 mybatis的底层按照自己的这個默认规则进行fastjson映射多个类因为我使用的是boot 配置为mybatis-configuration-map...

记录下mybatis这种字段和数据库字段fastjson映射多个类方式   ,毕竟坑了自己一次过了半天才发现。。

}

我要回帖

更多关于 数据库怎么做映射 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信