MyBatis中基于别名typeAliases的设置

MyBatis 别名typeAliases的设置

第一种:通过在配置文件中typeAlias节点设置type的方式

<?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>
        <!-- type指的是javabean的完全限定名   alias就是指代别名-->
        <typeAlias alias="student" type="cn.entity.Student" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc的事务 -->
            <transactionManager type="JDBC" />
            <!-- 使用自带的连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                <property name="username" value="test" />
                <property name="password" value="test" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/dao/StudentDAO.xml" />
    </mappers>
</configuration>

通过这种方式设置别名在以后的操作是如果用到了某个javabean的完全限定名的时候我们就可以使用alias设置的值来代替,从而简化了编程。

第二种方式:通过在配置文件中typeAliases节点中设置package 的方式

<?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>
        <!-- 通过package, 可以直接指定package的名字, mybatis会自动扫描你指定包下面的javabean, 并且默认设置一个别名,默认的名字为:
            javabean 的首字母小写的非限定类名来作为它的别名 -->
        <package name="cn.entity" />
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc的事务 -->
            <transactionManager type="JDBC" />
            <!-- 使用自带的连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver" />
                <property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
                <property name="username" value="test" />
                <property name="password" value="test" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="cn/dao/StudentDAO.xml" />
    </mappers>
</configuration>

通过这种方式更加简化了编程,因为在实际开发中会有很多的javabean,这里只需要指定这些javabean所在的包就行了,那么默认他的别名是javabean 的首字母小写的非限定类名来作为它的别名。

第三种:通过注解的方式@Alias

/**
 * 学生实体类
 * @author hyj
 *
 */
@Alias(value="student")
public class Student {
     private Integer id;//编号
     private Integer age;//年龄
     private String name;//姓名
    public Student() {
    }
    public Student(Integer id, Integer age, String name) {
        super();
        this.id = id;
        this.age = age;
        this.name = name;
    }
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public Integer getAge() {
        return age;
    }
    public void setAge(Integer age) {
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", age=" + age + ", name=" + name + "]";
    }

}

mybatis的typeAliases别名和注解理解

一、别名(从mapper那里寻找类换到了从mybatis-config那里找)

1.修改beammapper.xml

2.修改全局配置mybatis-config.xml (新增了别名)

3.包的别名

会自动识别这个包下小写开头的类.

二、别名的好与坏

好处是可以简略地直接用小写开头的类名来用,更简洁

坏处是如果项目一多,类一多起来,就不好在beanmapper来ctrl来查找到对应的类

这里一个解决方法是别名的时候换成包的别名,但是依旧治标不治本.

所以这时候推荐使用注解

三、注解的使用

在每个beam包下使用注解来识别这个类

如:

这里取的别名跟上面的配置的不一样,会报错找不到category这个类

因为的把类取了个不一样的别名,

这时候改回正确的就可以正常运行了

四、一些知识点

mybatis-config.xml

properties:属性集(引入外部资源)

resource:加载类路径下的资源

url:引用网络路径或磁盘路径下的资源

mappers:加载已经写好的sql映射配置文件并注册到全局配置文件

settings配置(基于全局特性)

typealias别名

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

(0)

相关推荐

  • 解决MyBatis中为类配置别名,列名与属性名不对应的问题

    在传参与接收返回结果的时候,咱们一直是使用的全限定名.但是MyBatis自己在使用很多类型的时候(如Integer,Boolean)却可以直接使用别名.那么,咱们自己的写的类能不能使用别名呢?可以.需要配置. mybatis配置文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//

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

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

  • 详解MyBatis配置typeAliases的方法

    0x00:前言参考 之前的<MyBatis 中 SqlMapConfig 配置文件详解>记了一下 MyBatis 中的核心配置文件各个标签的作用和使用场景,这篇文章细说一下配置文件中 typeAliases 标签的详细使用. 0x01:标签介绍 在 MyBatis 的 sql 映射配置文件中,需要使用 paramterType.resultType 来设置 sql 语句的输入输出参数,一般参数都是基本的数据类型或封装类型,但都需要声明该类型的全路径,java.lang.String,或者 cn

  • mybatis @Alias注解在类上的使用方式(推荐)

    比如在类上使用该注解 @Alias("dDebtEntity") 则在mapper.xml文件中resultType="dDebtEntity" 在myBatisConfig.xml中 sqlSessionFactory需要配置注解  需要扫的路径 <typeAliases> <package name="com.xxxxx.core"/> </typeAliases> Mybatis之typeAlias配置的

  • Mybatis中typeAliases的使用

    最近写接口的时候,关于返回值resultType="com.whiteme.po.User"之类的东西想来觉得有简化的方法,再看看一些代码发现果然有,于是写了这篇博客记录一下,这样的好处可能是以后包名换了比较好改(虽然可能性低),但是他解决了写全路径的问题,简化开发  typeAliases 单个定义 <typeAliases> <typeAlias alias="users" type="com.whiteme.po.Users&quo

  • MyBatis中基于别名typeAliases的设置

    MyBatis 别名typeAliases的设置 第一种:通过在配置文件中typeAlias节点设置type的方式 <?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&

  • MyBatis别名和settings设置方式

    MyBatis别名和settings设置 别名(typeAliases)是一个指代的名称,在类的限定名过长时可以指定别名来简化使用,MyBatis里分为系统定义别名和自定义别名两种,系统定义别名是不需要我们再去指定的,通过TypeAliasRegistry类注册. MyBatis中别名不区分大小写,一个typeAliases的实例是在解析配置文件时生成的,然后长期保存在Configuration对象中. 接下来配置别名: 1.在MyBatis Spring配置文件中引入配置 指定configLo

  • mybatis取别名typeAliases标签的位置放错导致报错的解决

    目录 mybatis取别名typeAliases标签的位置放错导致报错 因为<typeAliases>位置放错,报如下错 解决方案 mybatis取别名问题 今天学习Mybatis时在取别名这里总是报错 解决方案 mybatis取别名typeAliases标签的位置放错导致报错 学习mybatis的过程中,在全局配置文件SqlMapConfig.xml(名字自己取,可能不同)的配置中遇到许多坑. 在使用typeAliases标签取别名的时候, 因为<typeAliases>位置放错

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

    目录 单个和批量定义别名typeAliases 一.使用和不使用别名的区别是 二.如何定义单个别名 三.如何批量定义别名 typeAliases别名配置元素详述 单个和批量定义别名typeAliases 使用Mybatis的别名typeAliases可以在xml文件里非常方便的使用类,而不需要写出这个类的全部路径 一.使用和不使用别名的区别是 不使用别名时:parameterType中需要写出这个类的全路径,特别麻烦 <insert id="saveCity" keyProper

  • Mybatis中typeAliases标签和package标签使用

    目录 typeAliases标签和package标签的使用 1.typeAliases 2.package properties,typeAliases,package三个标签使用以及细节 typeAliases标签和package标签的使用 1.typeAliases 主配置文件: <typeAliases> <typeAlias type="com.itheima.domain.User" alias="user"></typeAl

  • 基于mybatis中<include>标签的作用说明

    MyBatis中sql标签定义SQL片段,include标签引用,可以复用SQL片段 sql标签中id属性对应include标签中的refid属性.通过include标签将sql片段和原sql片段进行拼接成一个完整的sql语句进行执行. <sql id="sqlid"> res_type_id,res_type </sql> <select id="selectbyId" resultType="com.property.vo

  • 基于mybatis中数组传递注意事项

    目录 mybatis中传数组时应当注意的地方 1.直接传递数组 2.将数字放入map中传递 mybatis传入参数为数组.list的写法 1.当传入参数为数组 2.当传入参数为集合时 mybatis中传数组时应当注意的地方 parameterType为主要注意点之一,foreach循环为注意点之二 例如如下代码: 1.直接传递数组 如果 parameterType使用的是 数组参数 例如上述的Long[], 则foreach循环 collection中 必须使用 array(其他代码可以忽略主要

  • 基于mybatis中test条件中单引号双引号的问题

    目录 test条件中单引号双引号问题 具体原因 动态sql中test的一些问题 mybatis动态sql中OGNL中type=="1"和type='1'的区别 解决方案 test条件中单引号双引号问题 在mybatis中test判断条件中使用单引号会报错 通常使用双引号 通常test后的判断条件写在双引号内,但是当条件中判断使用字符串时应该如下方式开发 <when  test="channel ==null" > <when  test='chan

随机推荐