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. C#如何将十六进制数字符串转byte[]?

    代码: /// <summary> /// 16进制原码字符串转字节数组 /// </summary> /// <param name="hexString&q ...

  2. PHP trait 特性在 Laravel 中的使用个人心得

    trait 是在PHP5.4中为了方便代码复用的一种实现方式,但目前我在看的的PHP项目中较少看的有程序员去主动使用这个实现方式,在laravel中有很多 trait 的使用,关于trait 在 la ...

  3. 【Windows10 IoT开发系列】Powershell命令行实用程序

    原文:[Windows10 IoT开发系列]Powershell命令行实用程序 更新帐户密码: 强烈建议你更新默认的管理员帐户密码.若要更新帐户密码,你可以发出以下命令: net user Admin ...

  4. MFC OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别

    OnPaint()函数中最先调用CDialog::OnPaint()和最后调用CDialog::OnPaint()的巨大区别,如果没有注意这个问题就会出现无厘头式的绘图问题-- 效果就是出不来!在经过 ...

  5. Qt for android触摸手势事件QGestureEvent

    在触摸设备上可以使用Qt的手势事件 要激活手势事件,需要执行以下操作: 第一步,为QWidget控件注册手势事件 QList<Qt::GestureType> gestures; gest ...

  6. Wiki上的C++哲学

    Philosophy[edit] Throughout C++'s life, its development and evolution has been informally governed b ...

  7. 使用BCP批量导入数据

    本文原创,转载请标明出处 BCP 工具的使用 The bulk copy program utility (bcp) bulk copies data between an instance of M ...

  8. Memcached在Linux系统下的安装和PHP开启 Memcached的 扩展 超级解决方案

    [项目背景]:阿里云ECS服务器,Linux(centos7.2 64位),环境部署使用的是阿里云一键安装包(LAMP)等 [项目需求]:linux安装memcached 和php开启Memcache ...

  9. xmanager小技巧

    使用manager时候,左键选中之后,直接右键粘贴,能带来效率的提升.虽然是小技巧,但有人还是不知道,这里简单写一下,供需要的同学参考. 简单二步设置: 1.工具-选项

  10. 30441数据定义语言DDL

    数据定义:指对数据库对象的定义.删除和修改操作. 数据库对象主要包括数据表.视图.索引等. 数据定义功能通过CREATE.ALTER.DROP语句来完成. 按照操作对象分类来介绍数据定义的SQL语法. ...