MyBatis中基于别名typeAliases的设置
作者:hyjj 发布时间:2022-03-07 22:18:19
标签: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别名
来源:https://www.cnblogs.com/hyjj/p/6186656.html


猜你喜欢
- 本文实例讲述了Android创建或升级数据库时执行的语句,如果是创建或升级数据库,请使用带List参数的构造方法,带SQL语句的构造方法将在
- 一、WebSocket简介WebSocket协议通过在客户端和服务端之间提供全双工通信来进行Web和服务器的交互功能。在WebSocket应
- 这篇文章主要介绍了Spring自定义参数解析器代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 前面几篇案例已经将常用的交换器(DirectExchange、TopicExchange、FanoutExchange)的用法介绍完了,现在
- 目录定义数据库表访问表中的数据插入数据查询数据创建数据库测试 DaoRoom 是 SQLite 的封装,它使 Android 对数据库的操作
- properties和yml的区别这几天刚好看到Spring Boot当中有两种配置文件的方式,但是这两种配置方式有什么区别呢?proper
- 在Monkeyrunner做自动化测试时,可以使用模拟器,当然也可以选择用真机。不过,要想通过电脑来安装软件,操作手机,则必须先安装手机驱动
- 本文实例讲述了C#实现的微信网页授权操作逻辑封装。分享给大家供大家参考,具体如下:一、微信网页授权登录前提:1.已经获取的接口权限,如果是测
- 目录I. 环境配置1. 项目配置2. 数据库表II. 传参类型确定1. 参数类型为整形2. 指定jdbcType3. 传参类型为String
- 简单的日历实现,只是显示了每一个月,没有显示当天和记事这些功能主要是计算月初是周几,月末是周几,然后相应的显示上一月多少天和下一月多少天。先
- 一、容器初始化1、源码分析在jdk8的ConcurrentHashMap中一共有5个构造方法,这四个构造方法中都没有对内部的数组
- 我们都知道, Android EditText输入框,并没有监听用户输入完成的功能,需要我们自己实现。 下面是实现的方法,仅供参考:Edit
- C# 结构体在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。定义
- Java8Stream流操作List去重根据属性去重整体去重使用distinctArrayList<LabelInfoDTO>
- 本文实例为大家分享了Android实现支付宝记账饼图,点击旋转到最下面,供大家参考,具体内容如下代码:package com.example
- Spring Security简介Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的
- 一、导入相关jar包,pom依赖如下: <dependency> <groupId>org
- 函数指针最近看android camera 的source ,发现大量的call back ,多线程,有必要对其中的基础 :函数指针复习一下
- 主流有几种方法,一种是用下面的函数publicstaticStringgetProperty(Stringkey)键相关值的描述java.v
- 本文实例为大家分享了Android实现拼图小游戏的具体代码,供大家参考,具体内容如下目标效果: 1.activity_main.x