MyBatis 使用枚举或其他对象
From《Mybatis从入门到精通》
1.笔记:
<!--
6.3 使用枚举或者其他对象
6.3.1 使用MyBatis提供的枚举处理器
不懂:
因为枚举除了本身的字面值外,还可以通过枚举的ordinal()方法获取枚举值的
索引。在这个枚举类中,disabled对应索引为0,enabled对应的索引为1.
MyBatis在处理Java类型和数据库类型时,使用TypeHandler(类型处理器),对这
两者进行转换。MyBatis为Java和数据库JDBC中的基本类型和常用的类型提供了
TypeHandler接口实现。MyBatis在启动时会加载所有的JDBC对应的类型处理器,这个
处理器会将枚举类型转换为字符串类型的字面值并使用。对于Enabled而言,便是disabled和
enabled字符串。
也就是说默认的org.apache.ibatis.type.EnumTypeHandler,这个处理器只对枚举
的字面值进行处理,也就是数据库中需要存放着字符串,这样才能够转化成相应的枚举类型
所以不适合当前的情况。MyBatis还提供了org.apache.ibatis.type.EnumOrdinalTypeHandler
处理器,这个处理器使用枚举的索引值进行出来,可以解决此处遇到的问题。要使用
这个处理器,需要在mybatis-config.xml中进行配置:
<typeHandlers>
<typeHanderl
javaType="tk.mybatis.simple.type.Enabled"
hadler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/>
</typeHandlers>
-->
2.增加的枚举类型:
package tk.mybatis.simple.type;
public enum Enabled {
disabled,//禁用
enabled; //启用
}
3.对MyBatis配置文件的配置
<typeHandlers> <typeHanderl javaType="tk.mybatis.simple.type.Enabled" hadler="org.apache.ibatis.type.EnumOrdinalTypeHandler"/> </typeHandlers>
1.笔记:
<!--
6.3.2 使用过自定义的类型处理器
——Java枚举类型,我感觉我还是需要看一下,
里面有很多东西,一下子理解不了
——标记一下,这部分我没有细细的研究。
-->
MyBatis 使用枚举或其他对象的更多相关文章
- MyBatis从入门到精通(第6章):6.3 使用枚举或其他对象
6.3 使用枚举或其他对象 在 sys_role 表中存在一个字段 enabled,这个字段只有两个可选值,0 为禁用,1 为启用.但是在 SysRole 类中,我们使用的是 Integer enab ...
- 解决mybatis使用枚举的转换
解决mybatis使用枚举的转换 >>>>>>>>>>>>>>>>>>>>> ...
- mybatis的两个核心对象SqlSessionFactory和SqlSession对象
mybatis的两个核心对象SqlSessionFactory和SqlSession对象 参见:https://www.cnblogs.com/wxdestiny/p/9743686.html
- Win64 驱动内核编程-33.枚举与删除对象回调
转载:http://www.voidcn.com/article/p-wulgeluy-bao.html 枚举与删除对象回调 对象回调存储在对应对象结构体里,简单来说,就是存储在 ObjectType ...
- Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final
笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在S ...
- MyBatis的2个核心对象:SqlSessionFactory、SqlSession
SqlSessionFactory SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,主要作用是创建SqlSession. InputStream inputStream = ...
- mybatis 处理枚举类型
MyBatis支持持久化enum类型属性.假设t_user表中有一列gender(性别)类型为 varchar2(10),存储 MALE 或者 FEMALE 两种值.并且,User对象有一个enum类 ...
- [Effective JavaScript 笔记]第48条:避免在枚举期间修改对象
注册列表示例 一个社交网络有一组成员,每个成员有一个存储其朋友信息的注册列表. function Member(name){ this.name=name; this.friends=[]; } va ...
- Mybatis的基本要素--核心对象
大家好啊,今天呢来说下Mybatis的核心对象,也就是说基本三要素. >核心接口和类. >Mybatis核心配置文件(mybatis-config.xml) >SQL映射文件 一.下 ...
随机推荐
- 第一个kotlin程序
class ccc { companion object { @JvmStatic fun main(args: Array<String>) { println("hello! ...
- Android零基础入门第44节:ListView数据动态更新
原文:Android零基础入门第44节:ListView数据动态更新 经过前面几期的学习,关于ListView的一些基本用法大概学的差不多了,但是你可能发现了,所有ListView里面要填充的数据都是 ...
- CRS-2800: Cannot start resource 'ora.asm' as it is already in the INTERMEDIATE state on server ‘RAC02’
在安装ORACLE RAC的Grid Infrastructure时,在节点1运行/u01/app/11.2.0/grid/root.sh正常,当在节点2运行/u01/app/11.2.0/grid/ ...
- Android零基础入门第84节:引入Fragment原来是这么回事
随着大众生活水平的提高,再加上移动互联网的迅速发展,几乎每个人都至少拥有一台搭载Android系统的移动设备.Android设备的多样性给我们带来了很大的便捷,各Android设备拥有不同分辨率和不同 ...
- jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
转:http://www.cnblogs.com/wiseant/p/4553837.html 最近在一个ASP.NET MVC5项目中使用Bootstrap的模态窗(弹出层)来让用户填写内容,其中的 ...
- 简单封装 Delphi 的 DirectX类
var CreatorRenderer : TCreatorRenderer; Form1: TForm1; 窗体代码: {$R *.dfm} procedure TForm1.FormCreate ...
- 30211Java_类
类 类:我们叫做class. 对象:叫做Object,instance(实例).某个类的对象,某个类的实例.是一样的意思.1.对象是具体的事物;类是对对象的抽象;2.类可以看成一类对象的模板,对象可以 ...
- 30212Java_数组
数组 1.综述 数组是相同类型数据的有序集合.数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成. 其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们. 数组的三个 ...
- vue.js异步上传文件前后端代码
上传文件前端代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q ...
- 球体的双目视觉定位(matlab,附代码)
球体的双目视觉定位(matlab,附代码) 标签(空格分隔): 机器视觉 引言 双目视觉定位是我们的一个课程设计,最近刚做完,拿出来与大家分享一下,实验的目的是在拍摄的照片中识别球体,并求出该球体到相 ...