- 浏览: 961784 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
当使用枚举时,需要使用EnumTypeHandler或者EnumOrdinalTypeHandler作为映射类型,或者自己实现处理器。
<!-- mybatis-config.xml -->
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="java.math.RoundingMode"/>
</typeHandlers>
需要注意的是EnumOrdinalTypeHandler只能处理特定的类型,当我们需要使用真正意义上的枚举,需要使用EnumTypeHandler或者自己实现。
实际上,对于增删改查都需要这么处理。
<resultMap type="org.apache.ibatis.submitted.rounding.User" id="usermap2">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="funkyNumber" property="funkyNumber"/>
<result column="roundingMode" property="roundingMode" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
</resultMap>
<select id="getUser2" resultMap="usermap2">
select * from users2
</select>
<insert id="insert2" parameterType="org.apache.ibatis.submitted.rounding.User">
insert into users2 (id, name, funkyNumber, roundingMode) values (
#{id}, #{name}, #{funkyNumber}, #{roundingMode, typeHandler=org.apache.ibatis.type.EnumTypeHandler}
)
</insert>
当然,mybatis默认已经指定了枚举处理器就是EnumTypeHandler,所以可以不予配置。只要类型设置成了enum。
再看EnumTypeHandler的实现,
当从数据读取值的时候
是通过Enum.valueOf来解析的,这是一种全字匹配的实现方式。
String s = cs.getString(columnIndex);
return s == null ? null : Enum.valueOf(type, s);
如假设
public enum Enum1 {
ONE, TWO, THREE;
}
那么只有当cs.getString(columnIndex); = ONE的时候,才能获取到枚举值ONE;
设置值的时候
ps.setString(i, parameter.toString());
通过toString来处理。
还需要注意的是
EnumTypeHandler
Enumeration类型
VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。
<!-- mybatis-config.xml -->
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="java.math.RoundingMode"/>
</typeHandlers>
需要注意的是EnumOrdinalTypeHandler只能处理特定的类型,当我们需要使用真正意义上的枚举,需要使用EnumTypeHandler或者自己实现。
实际上,对于增删改查都需要这么处理。
<resultMap type="org.apache.ibatis.submitted.rounding.User" id="usermap2">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="funkyNumber" property="funkyNumber"/>
<result column="roundingMode" property="roundingMode" typeHandler="org.apache.ibatis.type.EnumTypeHandler"/>
</resultMap>
<select id="getUser2" resultMap="usermap2">
select * from users2
</select>
<insert id="insert2" parameterType="org.apache.ibatis.submitted.rounding.User">
insert into users2 (id, name, funkyNumber, roundingMode) values (
#{id}, #{name}, #{funkyNumber}, #{roundingMode, typeHandler=org.apache.ibatis.type.EnumTypeHandler}
)
</insert>
当然,mybatis默认已经指定了枚举处理器就是EnumTypeHandler,所以可以不予配置。只要类型设置成了enum。
再看EnumTypeHandler的实现,
当从数据读取值的时候
是通过Enum.valueOf来解析的,这是一种全字匹配的实现方式。
String s = cs.getString(columnIndex);
return s == null ? null : Enum.valueOf(type, s);
如假设
public enum Enum1 {
ONE, TWO, THREE;
}
那么只有当cs.getString(columnIndex); = ONE的时候,才能获取到枚举值ONE;
设置值的时候
ps.setString(i, parameter.toString());
通过toString来处理。
还需要注意的是
EnumTypeHandler
Enumeration类型
VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。
发表评论
-
深入了解MyBatis参数
2017-05-04 21:12 397深入了解MyBatis参数 http://blog.csdn ... -
MyBatis Generator 详解
2015-08-03 14:00 768http://blog.csdn.net/isea533/ar ... -
ibatis的动态sql
2014-10-23 13:33 944位于包 com.ibatis.sqlmap.engine.ma ... -
mybatis generator tools配置文件解析
2012-12-20 23:28 25418这是mybatis3 generator 配 ... -
问题解决方案
2011-08-22 00:25 24261.Mapped Statements collection ... -
mybatis的参数
2011-06-16 12:36 6437在类DynamicSqlSource 方法 public Bo ... -
与spring结合
2011-05-20 21:58 1244实体省略 maping文件省略 dao接口省略 mybatis ... -
动态sql
2011-05-05 17:54 1269ibatis支持动态的组合sql。 包括动态元素 if ... -
ibatis缓存
2011-05-05 16:38 4515ibatis的session缓存。做了一个测试 <?xm ... -
ibatis官方推荐目录结构
2011-05-05 13:24 1065src/com.liyixing.application.da ... -
sql映射文件
2011-04-30 22:09 2562<?xml version="1.0" ... -
配置文件
2011-04-30 20:17 1809mybatis的配置文件结构 顶级是configuration ... -
session的getMapper方法解析
2011-04-30 17:22 9648跟踪: DefaultSqlSession类 public & ... -
一个简单例子,以及基于接口,class对象调用
2011-04-30 16:59 1332应用结构: IbatisConfiguration.xm ... -
范围和声明周期(对象声明周期)
2011-04-29 23:19 1353先看mybatis用户手册中的一段代码 DataSource ...
相关推荐
枚举Enum的一些案例 枚举(enum)是一种特殊的值类型,它从 System.Enum 继承而来,并为基础的基元类型的值提供替代名称。枚举类型有名称、基础类型和一组字段。基础类型必须是一个内置的有符号(或无符号)整数...
枚举(Enum)作为编程语言中一种特殊的类型,为开发者提供了一种简洁、清晰的定义一组命名常量的方式。在C#语言中,枚举是通过`enum`关键字定义的,其本质上是一种结构体,与整型(int)紧密相关联,但提供了更丰富...
"Java Enum 枚举学习资料" Java Enum 枚举学习资料是 Java 编程语言中的一种特殊类型,它主要用来实现一组固定的常量。 Enum 枚举类型是 Java 5 中引入的一种新特性,旨在解决传统的 int 枚举常量的缺陷。 1. 枚举...
Java枚举类型(Enum)是Java SE 5.0引入的一种新的数据类型,它为开发者提供了更为强大且安全的方式来表示一组常量。枚举在Java中不仅是一个类,还是一种特殊的类型,允许我们定义自己的常量集合。接下来,我们将...
利用自定的枚举类型,结合rand函数,结合C++编程进行博彩游戏的模拟(掷双骰子)
首先,定义枚举要导入enum模块。 枚举定义用class关键字,继承Enum类。 注意: 定义枚举时,成员名称不允许重复 默认情况下,不同的成员值允许相同。但是两个相同值的成员,第二个成员的名称被视作第一个成员的别名...
Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类Java SE程序 Enum枚举类...
枚举(enum)在编程语言中是一种非常有用的类型,它允许我们定义一组命名常量,这些常量通常代表一组相关的值。在C#中,枚举(enum)被广泛用于增强代码的可读性和可维护性。下面我们将深入探讨C#中的枚举用法。 一...
C#与C调用C++,非托管,含struct调用及enum公用,完整项目,可直接编译或运行。 项目将所有工程的输出统一到Debug。 vs2015+Framework4.6,注意工程的配置。 所有东西自写,只是出于样例参考的作用,所以代码规范...
c#遍历枚举(ENUM)类型的方法,简单实用,适合c#初学者
在C语言中,枚举(enum)是一种定义符号常量的数据类型,它允许我们为整数值赋予有意义的名称。这不仅提高了代码的可读性,还可以避免硬编码数字,从而减少错误的可能性。本文将深入探讨C语言中的枚举类型及其用法。...
Java中的枚举类型`Enum`是面向对象编程中一种强大的工具,它允许程序员定义自己的常量集合。在Java中,枚举类型不是简单的常量数组,而是一种完整的类,具有类的所有特性,如方法、构造函数和继承。下面将详细探讨`...
### C++中的枚举类型(Enum) 在C++编程语言中,枚举(`enum`)是一种用户定义的类型,它由一组具有整数值的命名常量组成。这些值可以被程序用来代替数字,使代码更具可读性,并且能够表示特定范围内的固定集合。 ...
enum枚举的方法
枚举(Enum)在编程语言中是一种非常重要的数据类型,它允许我们定义一组预定义的常量,这些常量通常代表特定的值或状态。枚举在很多编程场景下都有广泛的应用,例如在处理有限状态机、定义颜色、星期等具有固定数量...