【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>

单元测试

  • 类图

  • image.png

  • image.png

  • 单元测试思路

    • 定义mapper文件dao的命名空间,即mapper文件实现了dao层的Dao接口,在接口中做相应的定义
    • 在对Dao层接口单元测试时,只需要声明一个Dao对象,然后调用其接口方法即可
  • 易错点

    • sql语法错误
    • 传入参数以及返回参数类型错误
 
posted @ 2020-03-05 00:52  雲無月  阅读(347)  评论(0编辑  收藏  举报