MyBatis自定义typeHandlers的配置问题

Mrcccccc 2013-12-30 05:47:42

package cn.com.ultrapower.zcwg.ext.mybatis.typehandler;

import java.io.StringReader;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.ibatis.type.BaseTypeHandler;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.MappedJdbcTypes;
import org.apache.ibatis.type.StringTypeHandler;

/**
* For using LargeStringTypeHandler, you must add a line in SqlMapConfig.xml as following:<br/>
* <typeHandler javaType="java.lang.String" callback="com.sinosoft.component.ibatis.typehandler.LargeStringTypeHandler"/>
* @author airlink
* @see http://blog.csdn.net/ruanee/archive/2006/03/24/637213.aspx
* @see http://www.tomjamescn.cn/?p=63
*/
@MappedJdbcTypes(JdbcType.VARCHAR)
public class LargeStringTypeHandler extends BaseTypeHandler<String> {

@Override
public void setNonNullParameter(PreparedStatement ps, int i,
String parameter, JdbcType jdbcType) throws SQLException {
StringTypeHandler sth=new StringTypeHandler();
if (parameter.length() < 667) {
//assume that all characters are chinese characters.
sth.setNonNullParameter(ps, i, parameter, jdbcType);
}else{
//use setCharacterStream can insert more characters.
ps.setCharacterStream(i, new StringReader(parameter), parameter.length());
}

}

@Override
public String getNullableResult(ResultSet rs, String columnName)
throws SQLException {
return rs.getString(columnName);
}

@Override
public String getNullableResult(CallableStatement cs, int columnIndex)
throws SQLException {
return cs.getString(columnIndex);
}

}




自定义了一个typeHandler
配置如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="lazyLoadingEnabled" value="false" />
</settings>
<typeHandlers>
<typeHandler javaType="String" jdbcType="VARCHAR"
handler="cn.com.ultrapower.zcwg.ext.mybatis.typehandler.LargeStringTypeHandler"/>
</typeHandlers>
</configuration>



	<parameterMap type="cn.com.ultrapower.zcwg.im.bean.AnnouncementBean"
id="bean">
<parameter property="msg" typeHandler="cn.com.ultrapower.zcwg.ext.mybatis.typehandler.LargeStringTypeHandler"/>
<parameter property="id" jdbcType="INTEGER" />
<parameter property="title" jdbcType="VARCHAR" />
<parameter property="create_date" jdbcType="DATE" />
<parameter property="account" jdbcType="VARCHAR" />
<parameter property="status" jdbcType="INTEGER" />
<parameter property="rowNo" jdbcType="VARCHAR" javaType="String" />
<parameter property="name" jdbcType="VARCHAR" javaType="String" />
<parameter property="count" jdbcType="VARCHAR" javaType="String" />

</parameterMap>
<insert id="addAnn" parameterType="cn.com.ultrapower.zcwg.im.bean.AnnouncementBean">
<selectKey resultType="java.lang.Integer" order="BEFORE"
keyProperty="id">
SELECT S_ANNOUNCEMENT.nextval AS id FROM DUAL
</selectKey>
insert into announcement (id,title,account,status,msg,create_date)
values(#{id},#{title},#{account},to_number(#{status}),#{msg},to_date(#{create_date},'yyyy-MM-dd HH24:mi:ss'))
</insert>

结构执行发现自定义的typeHandler没有被调用 求各位大神指点 小弟感激不尽!
...全文
454 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Mrcccccc 2013-12-31
  • 打赏
  • 举报
回复
自己顶一下吧
Mrcccccc 2013-12-31
  • 打赏
  • 举报
回复
没有人吗 唉 伤心啊
Mrcccccc 2013-12-30
  • 打赏
  • 举报
回复
没人么 各位大神人在何处
目录 1 Mybatis入门 1 1.1 单独使用jdbc编程问题总结 1 1.1.1 jdbc程序 1 1.1.2 jdbc编程步骤: 2 1.1.3 jdbc问题总结如下: 3 1.2 MyBatis介绍 3 1.3 Mybatis架构 3 1.4 mybatis下载 4 1.5 创建mysql数据库 5 1.6 Mybatis入门程序 5 1.6.1 需求 5 1.6.2 第一步:创建java工程 6 1.6.3 第二步:加入jar包 6 1.6.4 第三步:log4j.properties 6 1.6.5 第四步:SqlMapConfig.xml 6 1.6.6 第五步:po类 7 1.6.7 第六步:程序编写 8 1.6.8 Mybatis解决jdbc编程的问题 15 1.6.9 与hibernate不同 16 2 Dao开发方法 16 2.1 需求 16 2.2 SqlSession的使用范围 17 2.2.1 SqlSessionFactoryBuilder 17 2.2.2 SqlSessionFactory 17 2.2.3 SqlSession 17 2.3 原始Dao开发方式 18 2.3.1 映射文件 18 2.3.2 Dao接口 19 2.3.3 问题 20 2.4 Mapper动态代理方式 20 2.4.1 实现原理 20 2.4.2 Mapper.xml(映射文件) 20 2.4.3 Mapper.java(接口文件) 21 2.4.4 加载UserMapper.xml文件 22 2.4.5 测试 22 2.4.6 总结 23 3 SqlMapConfig.xml配置文件 24 3.1 配置内容 24 3.2 properties(属性) 24 3.3 settings(配置) 25 3.4 typeAliases(类型别名) 26 3.4.1 mybatis支持别名: 26 3.4.2 自定义别名: 27 3.5 typeHandlers(类型处理器) 27 3.6 mappers(映射器) 28 3.6.1 28 3.6.2 28 3.6.3 29 3.6.4 29 4 Mapper.xml映射文件 29 4.1 parameterType(输入类型) 29 4.1.1 #{}与${} 29 4.1.2 传递简单类型 30 4.1.3 传递pojo对象 30 4.1.4 传递pojo包装对象 31 4.1.5 传递hashmap 32 4.2 resultType(输出类型) 33 4.2.1 输出简单类型 33 4.2.2 输出pojo对象 34 4.2.3 输出pojo列表 34 4.2.4 resultType总结: 35 4.2.5 输出hashmap 35 4.3 resultMap 36 4.3.1 Mapper.xml定义 36 4.3.2 定义resultMap 36 4.3.3 Mapper接口定义 37 4.4 动态sql(重点) 37 4.4.1 If 37 4.4.2 Where 38 4.4.3 foreach 38 4.4.4 Sql片段 43 5 关联查询 44 5.1 商品订单数据模型 45 5.2 一对一查询 45 5.2.1 方法一: 46 5.2.2 方法二: 48 5.3 一对多查询 50 5.3.1 Sql语句: 50 5.3.2 定义po类 50 5.3.3 Mapper.xml 51 5.3.4 定义resultMap 51 5.3.5 Mapper接口: 52 5.3.6 测试: 52 5.3.7 小结 53 5.4 多对多查询 53 5.4.1 查询用户购买的商品信息 53 5.4.2 小结 55 5.5 resultMap小结 55 5.6 延迟加载 56 5.6.1 打开延迟加载开关 56 5.6.2 一对一查询延迟加载 56 5.6.3 一对多延迟加载 59 5.6.4 延迟加载小结 59 6 查询缓存 59 6.1 mybatis缓存介绍 59 6.2 一级缓存 60 6.2.1 原理 60 6.2.2 测试1 61 6.2.3 测试2 61 6.3 二级缓存 62 6.3.1 原理 62 6.3.2 开启二级缓存: 62 6.3.3 实现序列化 63 6.3.4 测试 63 6.3.5 禁用二级缓存 63 6.3.6 刷新缓存 64 6.3.7 Mybatis Cache参数 64 6.3.8 mybatis整合ehcache 64 6.3.9 应用场景 67 6.3.10 局限性 67 7 与spring整合 68 7.1 mybatis与spring整合jar 68 7.2 Mybatis配置文件 68 7.3 Spring配置文件: 69 7.4 Mapper编写的三种方法 70 7.4.1 Dao接口实现类继承SqlSessionDaoSupport 70 7.4.2 使用org.mybatis.spring.mapper.MapperFactoryBean 71 7.4.3 使用mapper扫描器 71 8 Mybatis逆向工程 72 8.1 第一步:mapper生成配置文件: 72 8.2 第二步:使用java类生成mapper文件: 72 8.3 第三步:拷贝生成的mapper文件到工程中指定的目录中 73 8.3.1 Mapper.xml 73 8.3.2 Mapper.java 73 8.3.3 第四步Mapper接口测试 73 8.4 逆向工程注意事项 74 8.4.1 Mapper文件内容不覆盖而是追加 74 8.4.2 Table schema问题 74

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧