MyBatis中基于别名typeAliases的设置

作者:hyjj 时间:2022-03-07 22:18:19 

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

MyBatis中基于别名typeAliases的设置

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

MyBatis中基于别名typeAliases的设置

3.包的别名

MyBatis中基于别名typeAliases的设置

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

二、别名的好与坏

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

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

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

所以这时候推荐使用注解

三、注解的使用

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

如:

MyBatis中基于别名typeAliases的设置

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

MyBatis中基于别名typeAliases的设置

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

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

MyBatis中基于别名typeAliases的设置

四、一些知识点

mybatis-config.xml

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

resource:加载类路径下的资源

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

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

settings配置(基于全局特性)

typealias别名

来源:https://www.cnblogs.com/hyjj/p/6186656.html

标签:MyBatis,别名,typeAliases
0
投稿

猜你喜欢

  • 详细理解JAVA面向对象的封装,继承,多态,抽象

    2023-07-05 06:54:14
  • Java毕业设计实战之在线蛋糕销售商城的实现

    2022-06-06 14:25:39
  • 解决mybatis一对多查询resultMap只返回了一条记录问题

    2022-07-08 08:36:31
  • 详解Java实现设计模式之责任链模式

    2023-11-08 10:32:07
  • C#键盘鼠标钩子实例

    2021-10-18 21:05:24
  • java 字浮串提取方法汇集

    2023-11-24 14:43:16
  • C#开发WPF程序中的弱事件模式

    2022-11-21 12:50:34
  • 详解SpringBoot和SpringBatch 使用

    2023-08-17 19:00:38
  • Java二维数组实现数字拼图效果

    2021-11-21 20:39:17
  • C#判断页面中的多个文本框输入值是否有重复的实现方法

    2022-10-30 19:41:56
  • springboot整合security和vue的实践

    2021-09-17 20:39:28
  • C#下使用XmlDocument操作XML详解

    2022-08-27 16:38:53
  • 解决Maven中关于依赖导入不进的问题

    2023-09-05 23:13:08
  • 详解Android的.aar文件生成方法以及使用技巧

    2023-08-06 06:43:20
  • 实例讲解JAVA设计模式之备忘录模式

    2023-08-29 16:31:19
  • Springboot actuator应用后台监控实现

    2022-02-01 11:48:16
  • 基于CXF搭建webService的实例讲解

    2023-07-02 10:41:34
  • 老生常谈比较排序之归并排序(递归)

    2022-05-15 11:43:15
  • C#实现文本文件读写方法汇总

    2023-10-27 16:57:40
  • WPF模拟实现Gitee泡泡菜单的示例代码

    2023-09-19 00:53:16
  • asp之家 软件编程 m.aspxhome.com