【原创】Mybatis学习笔记(二)——一些写mapper配置使用的最佳实践
Mybatis学习笔记(二)——一些写mapper配置使用的最佳实践
[*]使用mybatis,目的是为了减少dao层的代码量和维护难度,所以放弃dao层的实现吧,dao层只需要一个接口
[*]把mapper.xml放在dao层接口的同一个包下,配置文件和接口同名,mybaits会自己识别,在领域层(domain)或者服务层(service)使用@Resource自动装配,mybatis会使用动态代理自动生成dao接口的实例(需要引入cglib包,例如cglib-nodep-2.2.3.jar);
[*]<mapper>标签需要指定命名空间,所以请使用dao层接口的全局限定名;
[*]表名是重用率比较高的,所以预定义
<sql id="TABLE">
pub_user
</sql>
[*] 列名是重用率比较高的,所以预定义
<sql id="COLUMNS">
user_id, user_code, user_name, password, group_id, is_use
</sql>
[*] 排序是重用率比较高的,所以预定义
<sql id="ORDER">
<if test="order != null">
order by #{order}
</if>
<if test="!isAsc">
desc
</if>
</sql>
[*] 对于查询(query)这样的方法,返回值是多个的,<select>标签中的resultMap只需要指定数组或者列表中的元素类型即可
<!-- 结果集映射定义 -->
<resultMap id="DATA" type="com.lxl.authority.user.model.User">
<result property="isUse" column="is_use" />
</resultMap>
<!-- 查询定义 -->
<select id="query" parameterType="com.lxl.authority.user.controller.UserQueryFilter"
resultMap="DATA">
……
</select>
未完待续
注:本博客文章均已注明原创和转载,如转载本博客文章,请注明原文出处或征求原作者同意。
页:
[1]