`
need_faith
  • 浏览: 80918 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【原创】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>

 

 未完待续

 

注:本博客文章均已注明原创和转载,如转载本博客文章,请注明原文出处或征求原作者同意。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics