- 1.配置解析(优化)
- 1.1.环境配置
- 1.2.属性(properties)
- 2.类型别名
- 2.1.为实体类取别名
- 3.映射器(mappers)
1.配置解析(优化) 1.1.环境配置
- MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中(比如需要不同的环境,mysql和oracle)
- 尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
- 如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。
我们可以通过perperties属性实现引用配置文件。
这些属性都是可以外部配置且可以动态替换的,既可以在典型的java属性文件中配置,也可以通过properties元素的子元素类传递(db.properties)
优化配置文件(外接配置文件)具体步骤
1)第一步 :在resouces目录下新建一个db.properties
driver=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&useSSL=false username=root password=*******2)第二步 : 将文件导入properties 配置文件 mybatis-config.xml内容如下:
也可以这么写:
注意点:
- 可以直接引入外部文件
- 可以在其中增加一些属性配置
- 当db.properties中的属性和properties中属性冲突时,以db.properties中为准。
- 类型别名是为Java类型设置一个短的名字
- 存在的意义仅在于用来减少类完全限定名的冗余
第一种方法:
为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写
第二种方法:也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如:
扫描一个包
可以指定一个包名,MyBatis会在包名的下面搜索需要的java bean ,比如:扫描一个实体包,它的默认别名就是这个类的类名,首字母小写。
如何选择?:
- 在实体类比较少的时候,使用第一种方式
- 如果实体类十分多,建议使用第二种
- 第一种可以DIY别名,第二种则不行,如果非要改,需要在实体类上加上注解
package com.org.pojo;
//实体类
@Alias("aaa")
public class User {
private int id;
private String name;
private String pwd;
public User(int id, String name,String pwd){
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", pwd='" + pwd + ''' +
'}';
}
}
3.映射器(mappers)
- 每写一个Mapper类就要注册一次。
- 引入资源方式(推荐还是使用第一种方式,保险一点)



