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映射文件 一.下 ...
随机推荐
- Android系统adb命令查看CPU与内存使用率
1. 打开终端,进入上述目录,如下图所示: 2. 输入adb shell,打开adb命令行,如 ...
- ORA-09925: Unable to create audit trail file
当我修改ORACLE_SID为新的SID,想进行数据库还原时,用sqlplus报如下错误 [oracle@dbtest ~]$ sqlplus / as sysdba SQL Production : ...
- [PowerDesign]将数据库从SQL Server数据库转换为MySQL
原文:[PowerDesign]将数据库从SQL Server数据库转换为MySQL 一.迁移Database Schema. 首先使用Sybase Powerdesigner的逆向工程功能,逆向出S ...
- QSqlQueryModel 居然默认是只读的!
The model is read-only by default. To make it read-write, you must subclass it and reimplement setDa ...
- WebP 极限压缩及ios实现
WebP 极限压缩及ios实现 Levi.duan 会议提纲 概念以及定义 什么是Webp ? WebP (发音 weppy ),是一种同时提供了有损压缩与无损压缩的图片文件格式,是Google新 ...
- python分布式编程(转)
本文代码转载廖雪峰老师的python3教程 分布式编程的难点在于: 1.服务器之间的通信,主节点如何了解从节点的执行进度,并在从节点之间进行负载均衡和任务调度: 2.如何让多个服务器上的进程访问同一资 ...
- java关键字之synchronized
1.synchronized可以用了修饰一个普通方法,或者代码块,这个时候synchronized锁定的是当前对象,只要有一个线程在访问对应的方法或代码块,其他线程必须等待.2.synchronize ...
- Tomcat常见问题[内存溢出,虚拟目录配置等](一)
一.Tomcat内存溢出的解决方法 内存溢出一般有如下三种常见的原因: OutOfMemoryError: Java heap space OutOfMemoryError: PermGen spac ...
- Linux 中文设置
命令 locale,查看Linux默认系统语言 [root@VM_0_15_centos /]# locale LANG=en_US.utf8 LC_CTYPE="en_US.utf8&q ...
- Java NIO 学习笔记(三)----Selector
目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...