mybatis的XML配置文件中,typeHandler、jdbcType、javaType的使用
1.前言
typeHandler、jdbcType、javaType都是用来处理java数据类型和jdbc数据库数据类型的转换问题,但在xml的不同位置使用需要注意引号使用问题。
2.在xml的不同位置的使用方式
1)在xml的尖括号标签内做属性
必须给属性值加引号
<typeHandlers>
<typeHandler handler="org.apache.ibatis.type.EnumTypeHandler"
javaType="Sex" />
</typeHandlers>
如果没有引号则要报错

2) 在xml的sql语句占位'#{ }'内
不能使用引号
后台java测试方法
private SqlSession sqlSession = null;
@Before
public void openSession()
{
sqlSession = MyBatisUtil.createSqlSession();
} @Test
public void addStudent()
{
int addRows = sqlSession.insert("com.kgc.dao.StudentMapper.addStudent",
new Student(Short.valueOf("23"), Sex.FEMALE, "张大明"));
sqlSession.commit();
System.out.println("新增的行数" + addRows);
}
示例1:给typeHandler、jdbcType、javaType加上引号
<insert id="addStudent" parameterType="Student"
useGeneratedKeys="true" keyProperty="id">
<selectKey keyProperty="id" resultType="string" order="BEFORE">
select uuid()
</selectKey>
insert into test_student (id,age, sex, name)
values (#{id},
#{age ,jdbcType="TINYINT" ,javaType="short"},
#{sex, typeHandler="org.apache.ibatis.type.EnumTypeHandler"},
#{name} )
</insert>

JUinit提示不知道"TINYINT"的枚举类型

示例2:取消typeHandler、jdbcType、javaType属性值的引号
<insert id="addStudent" parameterType="Student"
useGeneratedKeys="true" keyProperty="id">
<selectKey keyProperty="id" resultType="string" order="BEFORE">
select uuid()
</selectKey>
insert into test_student (id,age, sex, name)
values (#{id},
#{age ,jdbcType=TINYINT ,javaType=short},
#{sex, typeHandler=org.apache.ibatis.type.EnumTypeHandler},
#{name} )
</insert>
控制台打印,增加数据成功。

3.总结
在xml的尖括号标签内做属性,需要给typeHandler、jdbcType、javaType的属性值加引号;
在xml的sql语句占位'#{ }'内 ,不能给typeHandler、jdbcType、javaType的属性值加引号。
mybatis的XML配置文件中,typeHandler、jdbcType、javaType的使用的更多相关文章
- Mybatis在xml配置文件中处理SQL中的大于小于号的方法
之前在项目中遇到了在SQL中<=不识别的问题,在Navicat中语句正常,在xml中不识别,想起来就记录一下 项目用的是Mybatis,经过网上多次查询,验证,总结方法如下: 一.使用<! ...
- mybatis的xml文件中如何处理大小于号
在mybatis的xml配置文件中会遇到大小于号转化的问题,解决问题的方法如下: 1.用转义字符把>和<替换掉 SELECT * FROM test WHERE AND start_dat ...
- mybatis 中的 xml 配置文件中 ‘<’、 ‘>’ 处理
mybatis 中的 xml 配置文件中 '<'. '>' 处理 1.使用转义字符将 '<'. '>' 替换掉. 描述 字符 转义字符 小于号 < < 大于号 &g ...
- IDEA中写MyBatis的xml配置文件编译报错的坑
IDEA中写MyBatis的xml配置文件编译报错的坑 说明:用IDEA编译工具在项目中使用Mybatis框架,编写mybatis-config.xml和Mapper.xml配置文件时,编译项目出现错 ...
- mybatis :xml文件中传入参数和if标签结合使用时要点
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ...
- MyBatis Mapper.xml文件中 $和#的区别
MyBatis Mapper.xml文件中 $和#的区别 网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...
- @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。
@Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...
- 通过java程序调用ant build.xml配置文件中指定的target
一.概述 通过ant实现项目的自动化部署,jar包生成,替换,tomcat关停.启动,查看项目日志: 通过java程序调用已编辑好的ant脚本build.xml配置文件中指定的target: 文中文件 ...
- Spring的xml配置文件中约束的必要性 找不到元素 'beans' 的声明
今天在复习Spring MVC框架的时候,只知道xml配置文件中的约束有规范书写格式的作用,所以在配置HandlerMapping对象信息的时候没有加入约束信息之后进行测试,没有遇到问题.后来在配置S ...
随机推荐
- Selenium2Library:Get Matching Xpath Count用法
Name:Get Matching Xpath CountSource:Selenium2Library <test library>Arguments:[ xpath ]Returns ...
- P1036 跟奥巴马一起编程
转跳点:
- 在执行 php artisan key:generate ,报 Could not open input file: artisan 错误
Could not open input file: artisan 必须保证命令是在项目根目录,如下图所示:
- Q3狂揽3亿美元净利润的特斯拉会让国内电动汽车厂商喜极而泣吗?
作为电动汽车行业的标杆,特斯拉无疑是国内电动汽车厂商发展进程中重要的参考对象.而前段时间特斯拉身上出现的产能受阻.私有化风波.马斯克卸任董事长一职等事件,着实让国产电动汽车厂商惊出一身冷汗.毕竟如果特 ...
- Python之日志处理(logging模块)《转载》
Python之日志处理(logging模块): https://www.cnblogs.com/yyds/p/6901864.html
- Flink:动态表上的连续查询
用SQL分析数据流 越来越多的公司在采用流处理技术,并将现有的批处理应用程序迁移到流处理或者为新的应用设计流处理方案.其中许多应用程序专注于分析流数据.分析的数据流来源广泛,如数据库交易,点击,传感器 ...
- [DDCTF 2019]homebrew event loop
0x00 知识点 逻辑漏洞: 异步处理导致可以先调用增加钻石,再调用计算价钱的.也就是先货后款. eval函数存在注入,可以通过#注释,我们可以传入路由action:eval#;arg1#arg2#a ...
- 51nod 1393:0和1相等串
1393 0和1相等串 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 给定一个0-1串,请找到一个尽可能长的子串,其中包含的0与1的个数相等. I ...
- 和为S的连续正序列
[问题]小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就 ...
- cat <<EOF> file
.多行导入文件(新建文件或者覆盖文件内容) cat << EOF > abcd.txt Hello! This is a test file! Test for cat and ...