Mybatis实现单个和批量定义别名typeAliases

编辑: admin 分类: java 发布时间: 2021-12-03 来源:互联网
目录
  • 单个和批量定义别名typeAliases
    • 一、使用和不使用别名的区别是
    • 二、如何定义单个别名
    • 三、如何批量定义别名
  • typeAliases别名配置元素详述

    单个和批量定义别名typeAliases

    使用Mybatis的别名typeAliases可以在xml文件里非常方便的使用类,而不需要写出这个类的全部路径

    一、使用和不使用别名的区别是

    不使用别名时:parameterType中需要写出这个类的全路径,特别麻烦

      <insert id="saveCity" keyProperty="id" useGeneratedKeys="true" parameterType="com.jd.lgg.web.domain.city.City">
            insert into jd_am_visit_city(cityName,creationTime,updateTime,yn)
            values(#{cityName},now(),now(),1)
        </insert>

    使用别名时,直接用别名来代替这个类就可以啦

       <insert id="saveCity" keyProperty="id" useGeneratedKeys="true" parameterType="city">
            insert into jd_am_visit_city(cityName,creationTime,updateTime,yn)
            values(#{cityName},now(),now(),1)
        </insert>

    二、如何定义单个别名

    <?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>
     <typeAliases>
       <!-- 这样定义后就可以用city来代替整个City类全路径了-->
       <typeAlias alias="city" type="com.jd.lgg.web.domain.city.City"/>
     </typeAliases>
    </configuration>

    三、如何批量定义别名

    但是如何整个项目的实体类特别多的时候,每一个都这么定义特别麻烦,而且如有有一个忘了定义就使用的话,项目会报很奇怪的错误,那么这个问题如何解决呢?

    答案是批量定义别名,只定义这类所在的包名就可以了,这些包下面的类或者这些包的子包下面的类都可以直接用他们类名,或者将类名的首字母小写来代替这个类,

    批量定义别名的格式如下

     <?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>
     <typeAliases>
       <!-- 批量定义别名,指定包名,此时pojo类的别名是pojo类的类名首字母大写或小写都行 -->
       <package name="com.jd.lgg.web.domain"/>  
     </typeAliases>
    </configuration>

    这样的话,所有的在domain包下的类都可以用该类的类名来表示这个类了,在xml文件中的使用于单个定义别名一模一样。

    typeAliases别名配置元素详述

    mybatis为我们已经实现了很多别名,已经为许多常见的 Java 类型内建了相应的类型别名。

    它们都是大小写不敏感的,需要注意的是由基本类型名称重复导致的特殊处理。

    别名 映射的类型 _byte byte _long long _short short _int int _integer int _double double _float float _boolean boolean string String byte Byte long Long short Short int Integer integer Integer double Double float Float boolean Boolean date Date decimal BigDecimal bigdecimal BigDecimal object Object map Map hashmap HashMap list List arraylist ArrayList collection Collection iterator Iterator

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持自由互联。

    【文章原创作者:http://www.1234xp.com/shsgf.html转载请保留出处】