4.1 核心配置文件
- mybatis-config.xml
- configuration(配置)
- properties(属性)
- settings(设置)
- typeAliases(类型别名)
- typeHandlers(类型处理器)
- objectFactory(对象工厂)
- plugins(插件)
- environments(环境配置)
- environment(环境变量)
- transactionManager(事务管理器)
- dataSource(数据源)
- environment(环境变量)
- databaseIdProvider(数据库厂商标识)
- mappers(映射器)
- configuration(配置)
4.2 属性
既可以在典型的 Java 属性文件中配置这些属性,也可以在 properties 元素的子元素中设置
配置资源文件:
classname=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
username=root
password=123456
通过下列标签进行导入
<properties resource="db.properties" />
设置好的属性可以在整个配置文件中用来替换需要动态配置的属性值
<dataSource type="POOLED">
<property name="driver" value="${classname}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
4.3 类型别名
- 类型别名可为 Java 类型设置一个缩写名字。
- 它仅用于 XML 配置,意在降低冗余的全限定类名书写
类型别名的两种方式:
1、直接对类取别名
<typeAliases>
<typeAlias alias="User" type="com.hniu.pojo.User"/>
</typeAliases>
<!--指定一个类进行取别名-->
<!--可以在标签中对多个类取多个别名-->
2、也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean
<typeAliases>
<package name="com.hniu.pojo"/>
</typeAliases>
使用 Bean 的首字母小写类名来作为它的别名,也可以使用注解来为包下的类起别名**@Alias(“author”)**
两种方式的选择:当需要的类较少时,可以使用第一种方法给每个类去一个别名。当类居多时,可以使用第二种方式直接导入包,省去给每个类都写包名,并且每个类也可以使用注解取别名;
**还有一些系统自动写好的别名,比如八大基础类型以及对应的包装类、集合,可以直接小写使用。**注:通常基础类型在前面加"_"
4.4 环境配置
环境配置是必不可少的,mybatis需要通过环境配置来连接数据库并对其进行操作
- MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中
- 不过要记住:尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
- 每个数据库对应一个 SqlSessionFactory 实例
可以通过以下方式来指定SQLSessionFactory对象的环境
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties);
环境配置的模板:
提示 如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。
4.5 映射器
每一个mapper都需要在核心配置文件中进行注册,注册的方式分为三种
-
通过完整的mapper.xml文件URL进行注册
<mappers> <mapper resource="Usermapper.xml" /> </mappers>
-
通过mapper绑定的接口类URL进行注册
<mappers> <mapper class="com.hnui.dao.Usemapper"/> </mappers>
限制:
-
接口名必须与对应的mapper名一样
-
两个文件必须在同一包下
-
-
通过包的URL来绑定其下的所有mapper注册
<mappers> <package name="com.hnui.dao"/> </mappers>
限制:
- 接口名必须与对应的mapper名一样
- 两个文件必须在同一包下