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别名
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务的方法(推荐)
在Spring Cloud中使用Feign, 我们可以做到使用HTTP请求远程服务时能与调用本地方法一样的编码体验,开发者完全感知不到这是远程方法,更感知不到这是个HTTP请求,具体内容详情大家参考下本文2018-01-01
最新评论