SQL片段的作用和使用
原创
©著作权归作者所有:来自51CTO博客作者Denial_learn的原创作品,请联系作者获取转载授权,否则将追究法律责任
- 作用:
将重复的sql语句抽出来放到sql标签中,然后通过<include refid=”” />
来引入
<sq1 id="userColumns">id,user_name,password,name,age,sex,birthday,created,updated</sql>
<select id= "queryUserByID" parameterType= "long" resultMap= "userResul tMap">
SELECT <include refid="userColumns"/> FROM tb_ user WHERE id = ${id}
</select>
sql片段有两种用法:
第一种:
在一个mapper.xml 中使用<sql id=(id就是一个标识)>
去定义sql片段,然后在需要的位置使用<include>
引入
注意:这里include里面的refid属性填写的内容是定义sql片段的id
<!--定义sql片段-->
<sql id= "userColumn ">
id, user_ name,password, name , age, sex, birthday , created , updated
</sql>
<!--书写CURD操作 -->
<!--id是方法的名字
resultType :结果集映射类型
-->
<select id= "queryAllUser" resultType= "User">
select <include refid= "userColumn"></include> from tb_ user
</ select>
第二种:
将所有的公用的SQL片段集中定义到一个Mapper.xml文件中,其他Mapper.xml文件如需引入mybatis-config.xml,通过命名空间.id即可
sqlMapper.xml里面的内容:
<mapper namespace= "abc">
<sql id= "userColumn">
id,
user_ name,
password,
name ,
age,
sex,
birthday,
created, .
updated
</sql>
</ mapper>
这个单独写出来的一个xml文件,需要重新的在全局的mybatis-config.xml里面引入sqlMapper.xml
<mappers>
<!--
引入sqlMapper.xml -->
kmapper resource= "cn/yanqi/mybatis/resources/ sqLMapper .xmL"/>
</mappers>
在查询标签语句当中引入公共的sql.xml片段
命名空间.id
<select id= "queryUserById" resultType= "User" parameterType= "Long">
select <include Fefid= "abc.userColumn"</include> from tb_user where id = #{as}
</select>