配置文件的主要元素
<configuration>是根元素
<configuration>的子元素如下
<properties> 该元素的作用是读取外部文件的配置信息,在mybatis-config.xml文件中使用
<typeAliases> 为核心配置文件中的POJO实体类设置一个简短的别名
<environments> 将SQL映射到不同运行环境的数据库中,配数据库
<mappers>引入映射文件
<sql>元素,<resultMap>元素
使用<sql>元素实现可重用的SQL代码片段
<sql>元素的作用是定义可重用的代码片段,可采用<include>元素中的refid属性引用自定义的代码片段,rdfid属性的值为自定义代码片段的id
使用<sql>元素定义可重用的代码片段
<sql id = "usersColumns">${alias}.uid, ${alias}.uname, ${alias}.uage</sql>
使用<include>元素中的refid属性引用自定义的代码片段,使用<property>元素将<sql>元素参数化,<sql>元素中的属性值随包含的对象而发生变化
<select id="findUserById" parameterType="Integer" resultType="com.itheima.pojo.User">
select <include refid="userCoulumns"/>
<porperty name="alias" value="t1">
from users
where uid = ${uid}
</select>
示例:依据客户id查询客户信息的SQL片段
<!--定义要查询的表-->
<sql id = "someinclude">
from
<include refid="${include_target}"/>
</sql>
<!--定义查询列-->
<sql id = "userColumns">
uid, uname, uage
</sql>
<!--根据客户id查询客户信息-->
<select id = "findUserById" parameterType="int" resultType="com.ithiema.pojo.User">
select
<include refid="userColumns"/>
<include refid="someinclude"/>
<property name="include_target" value="users"/>
</include>
where uid = #{uid}
</select>
<resultMap>元素
<resultMap>元素表示结果映射集,主要作用是定义映射规则,更新级联和定义类型转化器
使用情况:当数据表中的列和需要返回的对象的属性可能不完全一致时,MyBatis不会自动赋值,这时就需要使用<resultMap>元素进行结果集映射
StudentMapper.xml
<mapper namespace="com.itheima.pojo.Student">
<resultMap id="studentMap" type="com.itheima.pojo.Student">
<id property="id" column="sid"/>
<result property="name" column="sname"/>
<result property="age" column="sage"/>
</resultMap>
<select id="findAllStudent" resultMap="studentMap">
select* from t_student
</select>
</mapper>
@Before @Tset @After
@Before注解用于初始化,每个测试方法都要执行一次init()方法
@After注解标注的方法在每个方法执行完后都要执行一次
@Test,每一个用@Test标注的方法称为测试方法,它们调用的顺序是@Before->@Test->@After