MyBatis typeAliases元素标签(含注解方式)及其属性、设置方式

目录
  • typeAliases元素标签及其属性、设置
    • 简介
    • 通过单个定义别名的方式
    • 通过包扫描的方式
    • 采用注解的方式
    • 常见的 Java 类型内建的相应的类型别名
  • typeAliases和package标签的用法

typeAliases元素标签及其属性、设置

个人建议还是采用全类名的方式,这样可以很轻松的看到该类的所有方法等,比较方便直观;这样不过也有缺点,不利于维护等。

简介

typeAliases:别名处理器,可以为java类型(resultType)起别名。类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。

注意:在不指定别名情况下,别名默认就是类名小写。某些情况下别名不区分大小写。

通过单个定义别名的方式

语法

<typeAliases>
<!--
    alias:定义的别名
    type:指定要起别名的类型全类名
    默认别名就是类名小写
-->
  <typeAlias alias="别名" type="指定要起别名的类型全类名"/>

</typeAliases>

例如

<typeAliases>
<!--
    alias:定义的别名
    type:指定要起别名的类型全类名
    默认别名就是类名小写
-->
  <typeAlias alias="Author" type="domain.blog.Author"/>
  <typeAlias alias="Blog" type="domain.blog.Blog"/>
  <typeAlias alias="Comment" type="domain.blog.Comment"/>
  <typeAlias alias="Post" type="domain.blog.Post"/>
  <typeAlias alias="Section" type="domain.blog.Section"/>
  <typeAlias alias="Tag" type="domain.blog.Tag"/>
</typeAliases>

当这样配置时,Blog可以用在任何使用domain.blog.Blog的地方。

通过包扫描的方式

该方式将扫描该包下的所有类,默认为类名的小写。

注意:若该包下面还用子包,并且子包与该包有相同的类名,则需要为其中一个类进行注解,否则将会报错(冲突),因为mybatis不知道是哪个包,必须明确的指明才可以。

语法

<typeAliases>
  <package name="包名"/>
</typeAliases>

例如

<typeAliases>
  <package name="domain.blog"/>
</typeAliases>

采用注解的方式

每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。

例子:

@Alias("author")
public class Author {
    ...
}

常见的 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

typeAliases和package标签的用法

 <typeAliases>
        <!--用于指定别名-->
        <!--<typeAlias type="com.wance.entity.Person" alias="Person"/>-->
        <!--用于指定注册别名的包,当指定后,该包下的实体类都会注册别名,并且类名就是别名,-->
        <!--不再区分大小写-->
        <package name="com.wance.entity"/>
    </typeAliases>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • mybatis typeAliases 给实体类起别名的方法

    typeAliases 在我们开发中,Mapper中的实体类每次都要写上包名,是不是特别的麻烦 针对这一现象,myabtis提供了解决方案,简化开发 typeAliases标签 第一种用法 在主配置文件中 配置[不是映射文件,而是主配置文件] <typeAliases> <!--type:实体类的具体全限定类名, alias:别名--> <typeAlias type="com.yixuexi.entity.User" alias="User&q

  • SpringBoot整合Mybatis,解决TypeAliases配置失败的问题

    问题描述 在应用MyBatis时,使用对象关系映射,将对象和Aliase映射起来. 在Mybatis的文档明确写出,如果你没有明确定义实体类的Aliase,框架会自动将Class Name自动作为别名. 那么问题来了,当使用java -jar xxx.jar&启动的时候,会报出以下错误, Error resolving class. Cause: org.apache.ibatis.type.TypeException: Could not resolve type alias 'XXXXX'.

  • Springboot+Mybatis中typeAliasesPackage正则扫描实现方式

    Mybatis typeAliasesPackage正则扫描 mybatis默认配置typeAliasesPackage是不支持正则扫描package的,因此需要手动继承org.mybatis.spring.SqlSessionFactoryBean,自己实现正则扫描,方法和传统的spring+mybatis没什么区别,不同的是一个需要继承类一个是使用的扫描实现. 对于两个或多个扫描路径,例: cn.com.onethird.integration.entity cn.com.onethird.

  • Mybatis配置之typeAlias标签的用法

    Mybatis typeAlias标签 在实际的工程之中,类的全限定名称很长,当我们需要大量使用的时候,这非常不方便的,然而mybatis提供了typeAlias别名标签供我们别名和自定义别名,然而在mybatis之中别名的注册实际上由TypeAliasRegistry去定义,需要非常注意的是,在mybatis中名不区分大小写的,这一点非常重要. 下面展示了mybatis自己自动初始化了一些别名: 那么他是如何实现初始化别名的呢? 一般的是通过Configuration获取TypeAliasRe

  • MyBatis typeAliases元素标签(含注解方式)及其属性、设置方式

    目录 typeAliases元素标签及其属性.设置 简介 通过单个定义别名的方式 通过包扫描的方式 采用注解的方式 常见的 Java 类型内建的相应的类型别名 typeAliases和package标签的用法 typeAliases元素标签及其属性.设置 个人建议还是采用全类名的方式,这样可以很轻松的看到该类的所有方法等,比较方便直观:这样不过也有缺点,不利于维护等. 简介 typeAliases:别名处理器,可以为java类型(resultType)起别名.类型别名是为 Java 类型设置一个

  • 手写redis@Cacheable注解 支持过期时间设置方式

    目录 原理解释 实现方法 源代码 原理解释 友情链接  手写redis @ Cacheable注解参数java对象作为键值 @Cacheable注解作用,将带有该注解方法的返回值存放到redis的的中; 使用方法在方法上使用@Cacheable(键=“测试+#P0 + P1#...”) 表示键值为测试+方法第一个参数+方法第二个参数,值为该方法的返回值. 以下源代码表示获取人员列表,Redis的中存放的关键值为'领袖'+ leaderGroupId + UUID + yearDetailId @

  • MyBatis 添加元数据自定义元素标签的实现代码

    开发背景  现有系统中维护了一套业务表相关列.键的元数据,希望通过读取元数据实现自动封装 SQL 语句.自定义主键策略.实现方案为入侵式修改 MyBatis,增加元素标签meta,支持业务开发中可以在XML映射文件中使用. meta元素设计如下: <!-- meta标签 可根据参数获取到对应的表名 动态生成语句 --> <!ELEMENT meta EMPTY> <!ATTLIST meta test CDATA #IMPLIED type (update|insert|se

  • MyBatis resultMap id标签的错误使用方式

    目录 MyBatis resultMap id标签的错误使用 本节的问题主要是我对mybatis id标签的错误使用 resultMap标签的使用规则 自定义结果映射规则 association联合查询 使用association进行分布查询 collection分步查询 MyBatis resultMap id标签的错误使用 我们在编写VO对象,如果业务场景稍微复杂一点,就会用到集合属性.例如用户查看个人订单列表,每个订单又包含多种或者多个规格的商品. 本节的问题主要是我对mybatis id

  • mybatis 映射文件中if标签判断字符串相等的两种方式

    mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, <if test="sex=='Y'.toString()"> <if test = 'sex== "Y"'> 注意: 不能使用 <if test="sex=='Y'"> and 1=1 </if> 因为mybatis会把'Y'解析为字

  • mybatis自动扫描和自定义类注解方式

    目录 mybatis自动扫描和自定义类注解 Spring mybatis自动扫描dao 解决方案 mybatis自动扫描和自定义类注解 以往都是使用自定义注解实现Dao层mapper.java和mapper.xml文件的装载,今天在搭建MyBatis的过程,使用了MyBatis的自动扫描进行Dao层mapper.java和mapper.xml文件的装载过程中不断报错扫描不到,当时配置文件如下 最后找出原因是因为开启自动扫描的时候不能使用自定义注解类,否则spring默认是使用自定义类的方式进行文

  • MyBatis中foreach标签的collection属性的取值方式

    目录 foreach标签的collection属性的取值 传的是List列表 传的是Array数组 传的是Map collection属性总结 MyBatis使用foreach标签报错 原因 解决方案 foreach标签的collection属性的取值 传的是List列表 接口代码 List<Emp> findEmpByDeptnos(List<Integer> deptnos); xml配置代码 <select id="findEmpByDeptnos"

  • MyBatis关闭一级缓存的两种方式(分注解和xml两种方式)

    目录 问题:为什么有缓存 什么场景下必须需要关闭一级缓存 关闭一级缓存方法(针对使用MyBatis场景) 第一种:xml形式(关闭所有一级缓存) 第二种:注解形式(可指定仅仅某个Mapper关闭注解) 第三种:sql动态拼接传入的随机数 问题:为什么有缓存 mybatis默认开启一级缓存 什么场景下必须需要关闭一级缓存 场景:执行2次相同sql,但是第一次查询sql结果会加工处理,比如解析铭文,或者反编译加密解密用户名/密码字符串等等,如果不关闭一级缓存,等第二次再查询相同sql时不会去数据库表

  • MyBatis动态SQL标签的用法详解

    1.MyBatis动态SQL MyBatis 的强大特性之一便是它的动态 SQL,即拼接SQL字符串.如果你有使用 JDBC 或其他类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句有多么痛苦.拼接的时候要确保不能忘了必要的空格,还要注意省掉列名列表最后的逗号.利用动态 SQL 这一特性可以彻底摆脱这种痛苦. 通常使用动态 SQL 不可能是独立的一部分,MyBatis 当然使用一种强大的动态 SQL 语言来改进这种情形,这种语言可以被用在任意的 SQL 映射语句中. 动态 SQL 元素和

  • Mybatis中Mapper标签总结大全

    一.标签分类 定义SQL语句 insert delete update select 配置关联关系 collection association 配置java对象属性与查询结果集中列名的对应关系 resultMap 控制动态SQL拼接 foreach if choose 格式化输出 where set trim 定义常量 sql 其他 include 二.标签总结 1. 基础SQL标签 1.1 查询select 标签属性 id 唯一的名称,对应dao中mapper的接口名称 paramterTy

随机推荐