主配置文件
properties
- 第一种
<properties>
<property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="jdbc.url" value="jdbc:mysql://localhost:3306/eesy"/>
<property name="jdbc.username" value="root"/>
<property name="jdbc.password" value="1234"/>
- 第二种
- 在 classpath 下定义 db.properties 文件
<properties resource="jdbcConfig.properties"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
settings
主要用于改变MyBatis运行时行为,例如开启二级缓存,开启延迟加载等
typeAliases
- 单个别名定义
<typeAliases>
<typeAlias alias="user" type="com.itheima.domain.User"/>
</typeAliases>
- 批量别名定义
通过自动扫描包,将类名
<typeAliases>
<package name="com.itheima.domain"/>
</typeAliases>
-
如果在程序中使用了注解,则别名为其注解的值
@Alias(value="user") -
除自定义类名外,Mybatis还默认为许多常见的Java类型提供了相应的类型别名
typeHandler
- 类型处理器
- 自定义类型处理器
objectFactory
- 通常情况下使用默认的ObjectFactory即可,默认由DefaultObjectFactory提哦那个服务
- 如需自定义对象工厂,实现ObjectFactory接口或继承DefaultObjectFactory类
plugins
-配置用户所开发的插件
environments
- 通过该元素配置多种数据源,即配置多种数据库
mappers
- 指定Mybatis映射文件的位置
- <mapper resource=" " />:相对于类路径
- <mapper url=" " />:本地文件路径引入
- <mapper class=" " />:接口类路径,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中
- <package name=""/>:指定包下的所有 mapper 接口,此种方法要求 mapper 接口名称和 mapper 映射文件名称相同,且放在同一个目录中
映射文件
mappers是根元素
select
- id:命名空间唯一标识符
- parameterType:指定传入参数的类型,基本类型和String类型可以直接写类型名,类名要使用全限定类名
- resultType:指定结果集的类型,和parameterType一样
- resultMap
- 可以建立查询的列名和实体类的属性名称不一致时建立对应关系。从而实现封装
<!-- 建立 User 实体和数据库表的对应关系
type 属性:指定实体类的全限定类名
id 属性:给定一个唯一标识,是给查询 select 标签引用用的。
-->
<resultMap type="com.itheima.domain.User" id="userMap">
<id column="id" property="userId"/>
<result column="username" property="userName"/>
<result column="sex" property="userSex"/>
<result column="address" property="userAddress"/>
<result column="birthday" property="userBirthday"/>
</resultMap>
id 标签:用于指定主键字段
result 标签:用于指定非主键字段
column 属性:用于指定数据库列名
property 属性:用于指定实体类属性名称
insert
- selectKey
update
delete
sql
Sql 中可将重复的 sql 提取出来,使用时用 include 引用即可,最终达到 sql 重用的目的
<!-- 抽取重复的语句代码片段 -->
<sql id="defaultSql">
select * from user
</sql>
<!-- 配置查询所有操作 -->
<select id="findAll" resultType="user">
<include refid="defaultSql"></include>
</select>