侧边栏壁纸
博主头像
Curllen博主等级

早上的云霞好美~

  • 累计撰写 12 篇文章
  • 累计创建 18 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

mybatis系列(三) 抽取SQL片段-优化SQL

Curllen
2018-11-02 / 0 评论 / 0 点赞 / 1,011 阅读 / 0 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2020-05-06,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

如果某些sql片段在多个sql语句中被复用,可以将这些sql片段抽取为一个单独的映射文件(例如SQL语句中*,都尽可能用具体的字段名代替,以提高执行效率,这个过程中会出现大量重复sql片段).

抽取片段

<!-- 为何要抽取以下片段,去除SQL语句中的*,可以提高执行效率 -->
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace(命名空间):映射文件的唯一标识 -->
<mapper namespace="CommonSQL">
    <!-- 通过sql标签>id唯一标识片段 -->
	<sql id="commonSql">
		id,user_name,
			password,
			name,
			age,
			sex,
			birthday,
			created,
			updated
	</sql>
</mapper>

引用片段

  • mybatis-config.xml
<mappers>
    <mapper resource="CommonSQL.xml"
</mappers>
  • 需要使用片段的映射文件:在需要使用该sql片段的地方通过include标签的refid属性引用该sql片段:
	<!-- <sql id="commonSql">
		id,user_name,
			password,
			name,
			age,
			sex,
			birthday,
			created,
			updated
	</sql> -->

	<select id="queryUsersLikeUserName" resultType="User">
		select <include refid="CommonSQL.commonSql"></include> from tb_user where user_name like '%' #{userName} '%'
	</select>
0

评论区