Mybatis的枚举处理器
Mybatis有两个默认枚举处理器
- EnumOrdinalTypeHandler
- EnumTypeHandler
- 自定义枚举
EnumOrdinalTypeHandler
这个处理器负责将pojo里面的枚举类型转化为枚举的下标值存入数据库
假如pojo类有Sex这个枚举类的实例
public enum Sex {
MALE,FEMALE;
}
插入Sex.MALE时,数据库插入值为MALE的枚举下标值0,插入Sex.FEMALE时,插入值为FEMALE的枚举下标值1.
使用这个处理器的步骤
1.在Mybatis做如下配置
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler"
javaType="mytatis.enum2.Sex"
/>
</typeHandlers>
这样Mybatis遇到这个枚举就能对它做处理了。
2.pojo类里面类型为枚举类型,对应的数据库表字段为int类型
3.在mapper.xml中的<insert />语句枚举类型写成这样
#{sex, typeHandler=org.apache.ibatis.type.EnumOrdinalTypeHandler}
resultmap写成这样
<result column="sex" property="sex" typeHandler=
"org.apache.ibatis.type.OrdinalTypeHandler"/>
EnumTypeHandler
同上,不同的是将数据库的int类型换成varchar类型,插入数据库的是枚举类成员的名称。
自定义枚举
1.将自定义枚举处理器加入到<typeHandlers />
2.实现TypeHandler接口重新实现如何处理映射关系。
Mybatis的枚举处理器的更多相关文章
- MyBatis 使用枚举或其他对象
From<Mybatis从入门到精通> 1.笔记: <!-- 6.3 使用枚举或者其他对象 6.3.1 使用MyBatis提供的枚举处理器 不懂: 因为枚举除了本身的字面值外,还可以 ...
- MyBatis 示例-类型处理器
MyBatis 提供了很多默认类型处理器,参考官网地址:链接,除了官网提供的类型处理器,我们也可以自定义类型处理器. 具体做法为:实现 org.apache.ibatis.type.TypeHandl ...
- 解决mybatis使用枚举的转换
解决mybatis使用枚举的转换 >>>>>>>>>>>>>>>>>>>>> ...
- mybatis 处理枚举类型
MyBatis支持持久化enum类型属性.假设t_user表中有一列gender(性别)类型为 varchar2(10),存储 MALE 或者 FEMALE 两种值.并且,User对象有一个enum类 ...
- mybatis使用枚举优化
文章转自: https://segmentfault.com/a/1190000010755321 问题 在编码过程中,经常会遇到用某个数值来表示某种状态.类型或者阶段的情况,比如有这样一个枚举: p ...
- Mybatis的类型处理器
Mybatis在预处理语句(PreparedStatement)中设置一个参数时,会用默认的typeHandler进行处理. 这句话是什么意思呢,当你想用姓名查询一个人的信息时 <select ...
- mybatis自定义枚举转换类
转载自:http://my.oschina.net/SEyanlei/blog/188919 mybatis提供了EnumTypeHandler和EnumOrdinalTypeHandler完成枚举类 ...
- mybatis 3 -枚举
定义枚举: public static enum AppStateEnum { Valid("有效"), Virtual("虚拟"), Hide("隐 ...
- springboot mybatis自定义枚举enum转换
原文链接:https://blog.csdn.net/u014527058/article/details/62883573 一.概述 在利用Spring进行Web后台开发时,经常会遇到枚举类型的绑定 ...
随机推荐
- [学习笔记]K-D Tree
以前其实学过的但是不会拍扁重构--所以这几天学了一下 \(K-D\ Tree\) 的正确打开姿势. \(K\) 维 \(K-D\ Tree\) 的单次操作最坏时间复杂度为 \(O(k\times n^ ...
- 剑指offer二十之包含min函数的栈
一.题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 二.思路 用一个栈dataStack保存数据,用另外一个栈minStack保存依次入栈最小的数.每次元素存入minSt ...
- vue数组检测更新问题
由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例 ...
- windows系统搭建禅道系统(BUG管理工具)
我也呆过三家公司了,用过的BUG管理工具也是五花八门的,常见的一般有禅道,bugzilla,jira等 个人比较推荐禅道,功能强大,主页的说明文档也是相当详细,最主要的是,用的人比较多,出现使用问题一 ...
- CSS3无前缀脚本prefixfree.js与Animatable使用介绍
要求 必备知识 本文要求基本了解 JAVASCRIPT 和 和 CSS3 基本知识. 运行环境 桌面端:IE9 +,Opera 10+,火狐3.5 +,Safari 4+和Chrome浏览器;移动端: ...
- docker namespaces
https://docs.docker.com/engine/security/userns-remap/#prerequisites 注:以下验证环境为centos7.5 docker 18.09. ...
- ELK初探
ELK.nginx安装方式:rpm https://www.elastic.co/guide/en/elasticsearch/reference/current/rpm.html 其他的类似 ngi ...
- spring boot 与 filter
spring boot 里面用拦截器好像比用过滤器多一些. 在过滤器中, 并不能获取到action的相关信息, 会造成很多的麻烦和功能欠缺. 那, 这里就用过滤器做一个小栗子, 实际使用过程中, 不会 ...
- spring 通过@Value 获取properties文件中设置了属性 ,与@Value # 和$的区别
spring 获取 properties的值方法 在spring.xml中配置 很奇怪的是,在context-param 加载的spring.xml 不能使用 ${xxx} 必须交给Dispatche ...
- Mybatis在非spring环境下配置文件中使用外部数据源(druidDatasource)
Spring环境下, MyBatis可以通过其本身的增强mybatis-spring提供的org.mybatis.spring.SqlSessionFactoryBean来注入第三方DataSourc ...