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 使用枚举或其他对象的更多相关文章

  1. MyBatis从入门到精通(第6章):6.3 使用枚举或其他对象

    6.3 使用枚举或其他对象 在 sys_role 表中存在一个字段 enabled,这个字段只有两个可选值,0 为禁用,1 为启用.但是在 SysRole 类中,我们使用的是 Integer enab ...

  2. 解决mybatis使用枚举的转换

    解决mybatis使用枚举的转换 >>>>>>>>>>>>>>>>>>>>> ...

  3. mybatis的两个核心对象SqlSessionFactory和SqlSession对象

    mybatis的两个核心对象SqlSessionFactory和SqlSession对象 参见:https://www.cnblogs.com/wxdestiny/p/9743686.html

  4. Win64 驱动内核编程-33.枚举与删除对象回调

    转载:http://www.voidcn.com/article/p-wulgeluy-bao.html 枚举与删除对象回调 对象回调存储在对应对象结构体里,简单来说,就是存储在 ObjectType ...

  5. Java 基础 enum枚举类 的创建/使用/接口继承 ,以及手动创建枚举类的对象为:public static final

    笔记: import java.lang.*; /**一:枚举类 : enum Season implements info { s1(),s2(),s3(),s4() }; //s1--s4 放在S ...

  6. MyBatis的2个核心对象:SqlSessionFactory、SqlSession

    SqlSessionFactory SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,主要作用是创建SqlSession. InputStream inputStream = ...

  7. mybatis 处理枚举类型

    MyBatis支持持久化enum类型属性.假设t_user表中有一列gender(性别)类型为 varchar2(10),存储 MALE 或者 FEMALE 两种值.并且,User对象有一个enum类 ...

  8. [Effective JavaScript 笔记]第48条:避免在枚举期间修改对象

    注册列表示例 一个社交网络有一组成员,每个成员有一个存储其朋友信息的注册列表. function Member(name){ this.name=name; this.friends=[]; } va ...

  9. Mybatis的基本要素--核心对象

    大家好啊,今天呢来说下Mybatis的核心对象,也就是说基本三要素. >核心接口和类. >Mybatis核心配置文件(mybatis-config.xml) >SQL映射文件 一.下 ...

随机推荐

  1. SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC)

    原文:SqlServer & Windows 可更新订阅立即更新启用分布式事务协调器(MSDTC) 在可更新订阅中,在订阅设置更新方法,将 "排队更新" 设置为 " ...

  2. shell脚本配置ssh免密登陆

    通过shell脚本配置免密登陆,分为两个脚本,一个是配置文件config.env,一个是正式脚本sshkey.sh. # config.envexport HOST_USER=(root) expor ...

  3. WPF 窗体边框处理

    一般做wpf窗口时都不会使用默认的标题栏等,会把他隐藏掉 此时设置以下属性 WindowStyle.AllowsTransparency.ResizeMode 中的两个或三个都能达到目的. 有一种场景 ...

  4. Android零基础入门第52节:自定义酷炫进度条

    原文:Android零基础入门第52节:自定义酷炫进度条 Android系统默认的ProgressBar往往都不能满足实际开发需要,一般都会开发者自定义ProgressBar. 在Android开发中 ...

  5. C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。

    原文:C#图片灰度处理(位深度24→位深度8) #region 灰度处理 /// <summary> /// 将源图像灰度化,并转化为8位灰度图像. /// </summary> ...

  6. Android零基础入门第70节:ViewPager轻松完成TabHost效果

    上一期学习了ViewPager的简单使用,本期一起来学习ViewPager的更多用法. 相信很多同学都使用过今日头条APP吧,一打开主界面就可以看到顶部有很多Tab,然后通过左右滑动来切换,就可以通过 ...

  7. Oracle emca on linux

    http://blog.csdn.net/haibusuanyun/article/details/16338591 bash-3.2$  lsnrctl status LSNRCTL for Lin ...

  8. Java虚拟机性能监控与调优实战

    From:  https://c.m.163.com/news/a/D7B0C6Q40511PFUO.html?spss=newsapp&fromhistory=1 Java虚拟机性能监控与调 ...

  9. Mono 4.0 发布,开源跨平台 .Net 框架

    快速使用Romanysoft LAB的技术实现 HTML 开发Mac OS App,并销售到苹果应用商店中.   <HTML开发Mac OS App 视频教程> 土豆网同步更新:http: ...

  10. linux程序机制入门

    GCC环境 类debian系统运行 apt-get install build-essential 安装gcc环境. 编写c语言程序后,运行 gcc ./hello.c 会得到一个名为 a.out 的 ...