MyBatis中基于别名typeAliases的设置

 更新时间:2021年07月13日 11:57:35   作者:hyjj  
这篇文章主要介绍了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别名

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

相关文章

  • java class name实例深入精讲

    java class name实例深入精讲

    这篇文章主要为大家介绍了java class name实例深入精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • JAVA实现经典扫雷游戏的示例代码

    JAVA实现经典扫雷游戏的示例代码

    windows自带的游戏《扫雷》是陪伴了无数人的经典游戏,本程序参考《扫雷》的规则进行了简化,用java语言实现,采用了swing技术进行了界面化处理。感兴趣的可以学习一下
    2022-01-01
  • Java中浅拷贝与深拷贝实例解析

    Java中浅拷贝与深拷贝实例解析

    这篇文章主要给大家介绍了关于Java中浅拷贝与深拷贝的相关资料,拷贝对象是java中经常会遇到的问题,文中通过代码示例介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • kafka内外网访问配置方式

    kafka内外网访问配置方式

    这篇文章主要介绍了kafka内外网访问配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java 对象数组排序

    java 对象数组排序

    当遇到数组排序时,我们经常会使用学过的几种排序方法,而java 本身提供了Arrays.sort,在数据元素较少或者对效率要求不是抬高时,直接使用Arrays.sort来的更容易。查看一下源码后Arrays.sort 本身采用的是快速排序。
    2015-04-04
  • Springboot自动装配实现过程代码实例

    Springboot自动装配实现过程代码实例

    这篇文章主要介绍了Springboot自动装配实现过程代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Java中WeakHashMap的弱键回收机制

    Java中WeakHashMap的弱键回收机制

    这篇文章主要介绍了Java中WeakHashMap的弱键回收机制,WeakHashMap继承AbstractMap,实现了Map接口,和HashMap一样,WeakHashMap也是一个散列表,它存储的内容也是键值对(key-value)映射,而且键和值都可以是null,需要的朋友可以参考下
    2023-09-09
  • 使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)

    在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求,具体内容详情大家参考下本文
    2018-01-01
  • java多线程中断代码详解

    java多线程中断代码详解

    这篇文章主要介绍了java多线程中断代码详解,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • JSP、Servlet中get请求和post请求的区别总结

    JSP、Servlet中get请求和post请求的区别总结

    这篇文章主要介绍了JSP、Servlet中get请求和post请求的区别总结,列举了多条不同点,需要的朋友可以参考下
    2014-07-07

最新评论