核心配置文件 .properties
使用标签的好处:抽取配置属性值,增加配置文件代码可维护性
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test03?characterEncoding=utf-8
jdbc.username=root
jdbc.password=root
<?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>
<!--
全局properties属性值
resources属性值:设置外置数据库properties全局配置文件路径
-->
<properties resource="db.properties">
<!--
配置全局property属性键值key-value
name属性:设置键
value属性:设置值
properties引入的外部配置文件的属性优先被读取。外部properties覆盖内部全局配置
-->
<property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="jdbc.url" value="jdbc:mysql://localhost:3306/test03?characterEncoding=utf8"/>
<property name="jdbc.username" value="root"/>
<property name="jdbc.password" value="root"/>
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<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>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
typeAliases
注册别名
类型别名存在的意义:减少类全限定名的冗余。
<!--
注册别名
<typeAliases> 标签作用:为类的全限定名称,注册别名。为参数类型parameterType和返回值类型resultType写个简短的类型名称
-->
<typeAliases>
<!--
<typeAlias> 标签作用:注册单个别名
type属性值:设置注册别名的类全限定名称
alias属性值:设置别名
-->
<!--<typeAlias type="com.abc.pojo.User" alias="user"/>-->
<!--
<package>标签作用:批量注册别名
name属性值:设置批量注册别名的pojo包路径,注册的别名为类名,不区分大小写
-->
<package name="com.abc.pojo"/>
</typeAliases>
有了注册的别名,在mapper.xml配置文件中,就可以使用设置的别名。
<!--
根据id查询用户信息
parameterType属性值:除了基本数据类型及其包装类,字符串,pojo实体类,还可以填写别名
resultType属性值:除了基本数据类型及其包装类,字符串,pojo实体类,还可以填写别名
别名不区分大小写
-->
<select id="findById" parameterType="int" resultType="UsER">
select * from user where id=#{id};
</select>
mappers 文件:
<!--
<mappers>标签作用:配置映射器,加载SQL映射mapper配置文件
-->
<mappers>
<!--
<mapper>标签作用:加载单个SQL映射Mapper配置文件
resource属性值:设置SQL配置Mapper文件路径
class属性值:设置SQL配置Mapper文件全限定名,与resources写一个即可
-->
<!--<mapper resource="com/abc/mapper/UserMapper.xml"/>-->
<!--<mapper class="com.abc.mapper.UserMapper"/>-->
<!--
<package>标签作用:批量加载SQL映射Mapper配置文件
name属性值:设置批量加载的mapper所在包路径
-->
<package name="com.abc.mapper"/>
</mappers>
核心文件配置顺序:
1. properties(全局属性配置)
2. typeAliases(类型别名)
3. environments(环境集合属性对象)
- environment(环境子属性对象)
1. mappers(映射器)
Mybatis 的参数类型及结果类型:
paramType
主要是返回查询类的信息(比如用户的信息 User)
<!--
根据用户名查询用户信息
parameterType属性值:1基本数据类型及其包装类,2字符串,3pojo实体类,4别名,5pojo实体类包装类
#{},取值可以通过点的形式取出对象中对象的成员变量值
-->
<select id="findByUsername" parameterType="QueryVo" resultType="user">
select *
from user where username=#{user.username};
</select>
resultType
主要是返回查询目标信息的条数 id
<!--
查询用户总记录数
resultType属性值:1、pojo实体类-返回实体类,返回集合均可。2、基本数据类型及其包装类...
-->
<select id="countUsers" resultType="int">
select count(*)
from user;
</select>```
`resultMap` 自定义结果集映射,替代 resultType 自动结果集映射
```xml
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.abc.mapper.OrderMapper">
<!--
<resultMap>标签作用:自定义查询结果集映射
id属性值:resultMap唯一标识
type属性值:设置resultMap映射结果类型:可以写别名,也可以写类全限定名称
-->
<resultMap id="findAllResultMap" type="order">
<!--
<id>标签作用:映射主键
property属性值:指定Order实体类中的成员变量
column属性值:指定查询结果集中的列名
-->
<id property="id" column="id"/>
<!--
<result> 标签作用:映射对象普通成员变量
property属性值:指定Order实体类中的成员变量
column属性值:指定查询结果的列名
-->
<result property="userId" column="user_id"/>
<result property="number" column="number"/>
<result property="createtime" column="createtime"/>
<result property="note" column="note"/>
</resultMap>
<!--
查询所有订单信息
resultMap属性值:设置自定义查询结果映射配置的id,也就是resultMap的id
-->
<!--<select id="findAll" resultType="order">-->
<select id="findAll" resultMap="findAllResultMap">
select *
from `order`;
</select>
</mapper>