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
0
投稿
猜你喜欢
- 本文通过JavaMailSender实现邮箱注册验证中遇到的问题开始着手,给大家详细分析了其原理以及问题的解决办法。使用邮箱注册验证,我们需
- 本文实例为大家分享了C#实现简易计算器功能的具体代码,供大家参考,具体内容如下剖析:1、先设计界面(按钮、文本框(一个显示算式,一个显示结果
- SpringBoot应用启动run方法SpringApplication.java 中执行的代码@SpringBootApplication
- 一、前言Hello,又见面了,今天分享如何使用Unity制作计算器,难度中等,可以用来学习,或者当成其他项目的小组件导入。当然,也可以导出来
- Java Tess4J实现图像识别最近需要用Java做一个图像识别的东西,查了一些资料,在此写一个基于Tess4J的教程,方便其他人参考和使
- mybatis update并非所有字段需要更新mybatis update需求:更新字段作为参数,未更新字段不传入解决办法<upda
- 本文实例为大家分享了Unity shader实现自由放大缩小效果的具体代码,供大家参考,具体内容如下代码:以下实现的shader代码:Sha
- PreparedStatement介绍可以通过调用 Connection 对象的 prepareStatement(String sql)
- 效果图: //偶数随机 Random evenRanm
- 图片象对:经过理处过的jpg格式的位图(头像照片) 算
- 1、synchronized的作用为了避免临界区的竞态条件发生,有多种手段可以达到目的。阻塞式的解决方案:synchronized,Lock
- 前言:项目中数据分页是一个很常见的需求,目前大部分项目都会使用pagehelper进行分页,那么在使用的过程中是否考虑如下问题?一、基本集成
- 本文实例讲述了C# Winform实现捕获窗体最小化、最大化、关闭按钮事件的方法,主要是通过重写WndProc来实现的。分享给大家供大家参考
- 目录一、值类型和引用类型的区别1、赋值时的区别2、内存分配的区别3、来自继承结构的区别二、总结一、值类型和引用类型的区别.NET的类型可以分
- Java是如何跳出当前多重循环?不建议使用在最外层前面加一个标记A,然后用break A;可以跳出多重循环因为它不会让你的程序变得更加优雅,
- 数字签名广泛用于保护PDF文档,可见数字签名在日常生活中是相当重要的。在这篇文章中我将与大家分享如何给PDF文件添加可见的数字签名。首先我下
- 一、概述在微服务架构中,我们将系统拆分成了很多服务单元,各单元的应用间通过服务注册与订阅的方式互相依赖。由于每个单元都在不同的进程中运行,依
- 前言最近在阅读 .NET Threadpool starvation, and how queuing makes it worse 这篇博
- 本文实例讲述了C#图形区域剪切的实现方法。分享给大家供大家参考。具体如下:using System;using System.Collect
- 用servlet实现一个注册的小功能 ,后台获取数据。注册页面:注册页面代码 :<!DOCTYPE html><html&