zoukankan      html  css  js  c++  java
  • 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的属性值加引号。

  • 相关阅读:
    Python微信机器人
    Jumpserver开源跳板机系统介绍
    Django---django-rest-framework(drf)-luffycity projects
    Linux-Mysql 遗忘密码如何解决?
    up line
    linux
    vue中computed(计算属性)
    input框在浏览器上显示一个叉,去掉方法
    如何通过命令行来克隆git
    手机抓包fiddler配置及使用教程
  • 原文地址:https://www.cnblogs.com/gocode/p/jdbcType_javaType_typeHandler-use-quotation_marks-in-mybatis_config_xml.html
Copyright © 2011-2022 走看看