- 浏览: 1051369 次
- 性别:
- 来自: 郑州
文章分类
- 全部博客 (605)
- 数据挖掘 (22)
- spring (40)
- 工具使用 (39)
- java (137)
- JavaScript (40)
- webwork (12)
- web (120)
- 资源 (7)
- SSH (5)
- oracle (20)
- J2ME (1)
- 环境配置 (37)
- 项目管理 (29)
- mysql (14)
- struts (4)
- 项目总结 (27)
- ibatis学习 (33)
- 学习计划 (2)
- 缓存 (7)
- 重构 (3)
- Android (1)
- jquery (12)
- UML (3)
- 用户体验 (4)
- 习惯 (7)
- sakai (1)
- urlrewrite (4)
- rss (5)
- C plus plus (5)
- 算法 (5)
- 海量数据处理 (7)
- office(word、excel) (1)
- 面试题 (3)
- solr (8)
- 大数据 (2)
最新评论
-
hujin19861102:
截图看不见,最后一个webwrok的配置看不见
Ext+Webwork+Json 实现分页表格查询效果 -
蜗牛笔:
弱弱的问一句,要是分出来的词在词典中没有,那么两部分的pos- ...
ICTCLAS 中科院分词系统 -
weipeng1986:
授人予鱼不如授人予鱼,我想问你的是你是怎么总结的。比如第四种情 ...
JAVA中字符串连接效率的测试 -
xiaoqiang2008:
执行两次的原因是什么,好像楼主没弄清楚啊!是不是在web.xm ...
关于Spring中用quartz定时器在定时到达时同时执行两次的问题 -
Kent_Mu:
...
ibatis-dynamic的用法
原文来自: http://blog.csdn.net/lovingprince/article/details/2768849
Ibatis允许用户像在hibernate中一样定义自己的类型,但是,用户自定义类型需要与数据库中的字段类型进行对应。它的处理方法是允许我们扩展TypeHandler。Ibatis框架在处理该数据类型时就会自动调用TypeHandler进行类型转换,非常方便,ibatis中所有的类型都有它自己的TypeHandler,只是一些常用的数据类类型它已经给我们实现了而已。
在配置文件中,我们有两个地方可以配置这种处理器。
第一个地方是sqlMap文件中标签ResultMap或者ParameterMap中的TypeHandler属性,这里配置的handler是局部属性,只会在该ResultMap中才会进行转换。
- <resultMap id="UserOrder" class="UserOrderDO" groupBy="id">
- ......
- <result property="tripType" column="trip_Type"
- typeHandler="com.taobao.et.biz.dal.common.EnumTypeHandlerCallBack"/>
- ......
- </resultMap>
第二个地方是sqlMapConfig文件中的标签typeHandlers中配置typeHandle子标签,这里配置的标签是全局属性,任何只要匹配该子标签的地方都会自动使用该Handler.
例如这里的全局配置,如果此时某个数据库字段的jdbcType是CLOB类型,并且映射的JavaType类型是字符串类型,那么就会自动调用这里的callback来实行类型转换。 那么Ibatis是如何确定使用哪一个TypeHandler的呢?! 它会在自己的局部区域寻找是否在配置文件中配置了Handler,找到了就使用这个handler,如果没有找到,就会查找是否有全局handler,也就是第二种方式配置的handler,这里要注意,可能我们也没有在全局配置文件中配置handler,此时,Ibatis就会根据实际类型配置默认的handler。 我们来看一些关键代码,按照查找步骤,这里我去掉了异常,只看关键的部分。 第一步:从局部Reultmap中取出配置属性。 第二步,如果局部配置中没有找到,就到下面去找。
发表评论
-
list in传参 与批量插入 批量更新
2017-04-01 10:48 815传入一个map的参数,map里有一个tenantIds的Lis ... -
fork/join框架
2017-03-09 11:03 497http://blog.csdn.net/ye1992/art ... -
protobuffer
2017-03-09 10:54 693http://blog.csdn.net/antgan/art ... -
整理上传代码容易忽略的注意事项
2013-08-31 11:28 1160每个公司都有自己的代码代码上传流程:如果打包发布的话,是不存 ... -
mysql版本升级引发的问题
2013-05-16 15:25 1653问题描述: 1. ibatis 中 mysql语 ... -
网站的记住密码功能设计
2013-02-27 19:09 1307http://greenyouyou.blog.163 ... -
大型网站架构演变之路
2013-02-27 19:08 1146http://www.cnblogs.com/ivanjack ... -
使用Filter统计Java(J2EE)的web程序http请求响应时间
2013-02-27 19:07 1388http://www.cnblogs.com/ivan ... -
java bean与xml相互转换
2013-02-06 10:27 2045最近在做的项目,在各个平台之间需要大量传输数据,且结构比较 ... -
java 反射
2013-01-14 18:21 829http://www.cnblogs.com/rollenh ... -
字符串替换
2012-12-17 11:17 1159高效的字符串模式替换实现效果如下 String str ... -
httpURLConnection获取网络数据:XML格式返回与Json格式返回
2012-12-15 16:57 149251.服务器端代码样例: public class ... -
利用Freemarker实现表到功能界面的一键生成
2012-11-22 18:03 1018利用Freemarker实现表到功能界面的一键生成 h ... -
ibatis in ##的问题
2012-11-02 13:25 854http://www.hake.cc/a/biancheng/ ... -
ibatis缓存强制刷新与命中率
2012-10-19 19:06 1392缓存强制刷新: // spring注入 private Sq ... -
eclipse 的一些设置
2012-08-16 22:06 17611. 控制台信息太多,程序跑完后只能保留最后的一部分之前的 ... -
jdk1.5 System.arraycopy与jdk1.6 中Arrays.copyOf()&Arrays.copyOfRange()
2012-08-16 21:56 3287在JDK1.5的类System类中有方法 ... -
Eclipse报Java heap space错误的解决方案
2012-08-16 16:43 12071当运行大数量的数据时: (1) 如果是java 应用程 ... -
求两个字符串的最大公共字符串
2012-08-10 20:41 1064http://blog.csdn.net/wangcj625/ ... -
ffmpeg 截取视频 播放中的图片
2012-06-19 09:14 1314http://www.cnblogs.com/live365w ...
相关推荐
Ibatis的核心组件包括SqlMapConfig.xml配置文件、SqlSession管理、Executor执行器、Statement处理和TypeHandler类型处理器等。接下来,我们将详细探讨这些关键部分。 1. **SqlMapConfig.xml配置文件**:这是Ibatis...
自定义类型处理器需要实现`org.apache.ibatis.type.TypeHandler`接口,并重写`setNonNullParameter`、`getNullableResult`和`getResultFromCursor`方法。 ```java public class CustomTypeHandler implements ...
7. **TypeHandlerRegistry**: 这是Ibatis的核心组件之一,负责管理所有的类型处理器(TypeHandler)。TypeHandler是Ibatis中处理Java类型和数据库类型之间转换的关键,`TypeHandlerRegistry`可以根据Java类型或JDBC...
7. **TypeHandler**:类型处理器用于处理Java类型的转换,确保Java对象和数据库之间的数据类型匹配。 8. **插件机制**:iBATIS提供了一种插件机制,允许用户自定义拦截器来扩展其功能。 通过深入研究iBATIS 2.3的...
除此之外,Ibatis还提供了TypeHandler机制,用于处理Java类型与数据库类型的转换,确保数据的正确存取。例如,日期、枚举等复杂类型可以通过自定义TypeHandler进行处理。 总的来说,Ibatis的学习涵盖了数据库操作、...
对于参数映射,iBATIS根据`Statement`中的SQL语句解析参数,按顺序存储在`Map`中,并根据`ParameterMap`定义的Java数据类型创建`TypeHandler`,负责类型转换。`DataExchange`对象在此过程中扮演角色,将参数值复制到...
<typeHandler handler="org.apache.ibatis.type.LocalDateTimeTypeHandler" /> <typeHandler handler="org.apache.ibatis.type.LocalDateTypeHandler" /> ... ... ``` 4. SQL映射文件: 在XML映射文件中...
为解决此问题,我们可以创建一个自定义的TypeHandler,实现`org.apache.ibatis.type.TypeHandler`接口。这个类型处理器负责将枚举值转化为字符串(存储)和从字符串恢复为枚举(读取)。在MyBatis的配置中注册这个...
9. **TypeHandler类型处理器** TypeHandler负责Java类型与数据库类型的转换,如日期、自定义对象等的处理。MyBatis提供了多种内置TypeHandler,同时也支持自定义TypeHandler。 10. **插件机制** MyBatis的插件...