Mybatis基础学习之setting和typeAliases元素
setting设置
setting是mybatis中最复杂的配置,它能深刻影响MyBatis底层的运行,但在大部分情况下使用默认值便可以运行,所以在大部分情况下不需要配置它,只需要修改一下常用的规则便行。
关于setting的配置很多,但真正用的到的不会太多,我们把常用的配置搞清楚便行了。
typeAliases别名元素
由于类的全限定名很长,需要大量使用时,总写那么长的名称不方便。在mybatis中允许定义一个简写来代表这个类,这就是别名,别名分为系统定义别名和自定义别名。在mybatis中由类TypeAliasRegistry去定义。注意,在mybatis中别名不区分大小写。
我们注重于自定义别名。
自定义别名
由于现实中,特别是大型互联网系统中存在有许多的对象,比如用户(User)这个对象有时候需要大量重复地使用,因此mybatis也提供了用户自定义别名的规则。定义的方法可以通过TypeAliasRegistry类的registerAlias方法注册,也可以采用配置文件或扫描方式来定义它。
配置文件的定义如下:
<typeAliases >
<typeAlias type="cn.java.entity.User" alias="kk"></typeAlias>
</typeAliases>
这样就可以定义一个别名了。如果有很多类需要定义别名,那么使用这样的方式进行配置就不怎么方便了。可以采用扫描方式来定义。
<typeAliases >
<package name="cn.java.entity"></package>
</typeAliases>
这样mybatis将扫描这个包里面的类,可以用“kk”代替它的全限定名。
package cn.java.entity;
import org.apache.ibatis.type.Alias;
@Alias("kk")
public class User {
private Integer id;
private String name;
private Integer age;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
'}';
}
}
这样就能够避免因为别名重名而导致的扫描失败的问题。