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的使用的更多相关文章

  1. Mybatis在xml配置文件中处理SQL中的大于小于号的方法

    之前在项目中遇到了在SQL中<=不识别的问题,在Navicat中语句正常,在xml中不识别,想起来就记录一下 项目用的是Mybatis,经过网上多次查询,验证,总结方法如下: 一.使用<! ...

  2. mybatis的xml文件中如何处理大小于号

    在mybatis的xml配置文件中会遇到大小于号转化的问题,解决问题的方法如下: 1.用转义字符把>和<替换掉 SELECT * FROM test WHERE AND start_dat ...

  3. mybatis 中的 xml 配置文件中 ‘<’、 ‘>’ 处理

    mybatis 中的 xml 配置文件中 '<'. '>' 处理 1.使用转义字符将 '<'. '>' 替换掉. 描述 字符 转义字符 小于号 < < 大于号 &g ...

  4. IDEA中写MyBatis的xml配置文件编译报错的坑

    IDEA中写MyBatis的xml配置文件编译报错的坑 说明:用IDEA编译工具在项目中使用Mybatis框架,编写mybatis-config.xml和Mapper.xml配置文件时,编译项目出现错 ...

  5. mybatis :xml文件中传入参数和if标签结合使用时要点

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.Reflecti ...

  6. MyBatis Mapper.xml文件中 $和#的区别

    MyBatis Mapper.xml文件中 $和#的区别   网上有很多,总之,简略的写一下,作为备忘.例子中假设参数名为 paramName,类型为 VARCHAR . 1.优先使用#{paramN ...

  7. @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationException 异常。

    @Required 注释应用于 bean 属性的 setter 方法,它表明受影响的 bean 属性在配置时必须放在 XML 配置文件中,否则容器就会抛出一个 BeanInitializationEx ...

  8. 通过java程序调用ant build.xml配置文件中指定的target

    一.概述 通过ant实现项目的自动化部署,jar包生成,替换,tomcat关停.启动,查看项目日志: 通过java程序调用已编辑好的ant脚本build.xml配置文件中指定的target: 文中文件 ...

  9. Spring的xml配置文件中约束的必要性 找不到元素 'beans' 的声明

    今天在复习Spring MVC框架的时候,只知道xml配置文件中的约束有规范书写格式的作用,所以在配置HandlerMapping对象信息的时候没有加入约束信息之后进行测试,没有遇到问题.后来在配置S ...

随机推荐

  1. 如何有效避免Essay写作抄袭

    每到学期末的时候,各种考试,论文以及作业数不胜数,压得留学党们快要喘不过气了.我想比起写论文,同学们更操心的问题应该是:Plagiarism.要知道在国外Plagiarism的这种行为在学术中是零容忍 ...

  2. android 开发学习2

    Dao dao = new Dao(yi_ji_lu_zhang_dan.this);List<GetOneRecord> list = dao.getAllRecord();//创建迭代 ...

  3. Vue 改变数组触发视图更新

    最近给table做了一个点击排序的功能,数组更改以后发现data数据变了,但是视图不更新 写惯了js的我们随手一串代码 this.items[2]={message:"Change Test ...

  4. Cobalt Strike简单使用(9,29第十五天)

    本文转自:https://www.cnblogs.com/yuanshu/p/11616657.html 一.介绍: 后渗透测试工具,基于Java开发,适用于团队间协同作战,简称“CS”. CS分为客 ...

  5. 每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、默认路由、二级路由、路由守卫)

    路由别名   在main.js中的路由中添加name来创建别名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ] ...

  6. c++ opencv 数学函数示例

    // ConsoleApplication11.cpp : Defines the entry point for the console application. // #include " ...

  7. Java虚拟机之内存模型

    一.java并发基础 在并发编程中存在两个关键问题①线程之间如何通信 ②线程之间如何同步. 通信 通信是指线程之间以何种机制来交换信息.在命令式编程中,线程之间的通信机制有两种:共享内存和消息传递. ...

  8. HTTP协议(三):状态码

    前言 作者说:在上一节的内容中,HTTP大佬介绍了他是怎么让服务器和用户达成信息交互的,详细的说明了连接建立过程中用到的一些基本的技术原理,包括请求报文响应报文.建立持久化连接用的Cookie技术等内 ...

  9. Python的安装部署

    Python的安装部署 参考:https://www.runoob.com/w3cnote/pycharm-windows-install.html 参考:https://jingyan.baidu. ...

  10. 数组分组(DP)

    一个长度为n的数组a,我们可以把它分成任意组,每一组是一段连续的区间. 比如数组1,2,3,4,5可以分成(1,2),(3,4,5)两个组.每个分组都有一个权值,这个权值就是分组里面每个数的乘积对10 ...