【MyBatis笔记】mapper文件的配置以及说明
<!doctype html>【MyBatis笔记】mapper文件的配置以及说明
【MyBatis笔记】mapper文件的配置以及说明
命名空间
-
定义命名空间,dao层调用mapper文件中定义的对数据库进行操作的方法
-
mapper文件中的参数:
<select>
<insert>
等标签,定义了方法的功能- 标签内
id
定义了方法的名称,也即是dao层调用的方法名 parameterType
定义了参数类型,与dao层调用方法时的参数保持一致resultType
定义了返回值的类型,与dao层调用方法的返回值保持一致<insert>
标签中的参数useGeneratedKeys
表示属性值是否自动递增,keyProperty
表示允许递增的属性列<sql>
标签的使用,降低了代码复制量。可参考sql标签的使用
<mapper namespace="com.kris.dao.MyUserDao"> ... </mapper>
CRUD操作
<select id="findById" useCache="false" parameterType="int" resultType="com.kris.model.MyUser"> select * from my_user where id=#{id} </select> <select id="findByName" resultType="com.kris.model.MyUser"> select * from my_user where name = #{name} </select> <select id="countByName" parameterType="String" resultType="int"> select count(*) from my_user where name = #{name} </select> <insert id="insert" parameterType="com.kris.model.MyUser" useGeneratedKeys="true" keyProperty="id"> insert into my_user(id, name, password) values(#{id}, #{name}, #{password}) </insert> <update id="update" parameterType="com.kris.model.MyUser"> update my_user set name = #{name}, password = #{password} where id = #{id} </update> <delete id="delete" parameterType="int"> delete from my_user where id = #{id} </delete>
单元测试
-
类图
-
单元测试思路
- 定义mapper文件dao的命名空间,即mapper文件实现了dao层的Dao接口,在接口中做相应的定义
- 在对Dao层接口单元测试时,只需要声明一个Dao对象,然后调用其接口方法即可
-
易错点
- sql语法错误
- 传入参数以及返回参数类型错误