最近在使用springboot来写项目,用到了这两个标签,不是很理解于是就去查阅了资料,下面说一下自己的见解

<sql>用来封装SQL语句

<include>来调用

如果用了refid="base_column_list"则:

1.首先定义一个sql标签,在这个标签中一定要定义唯一id

<sql id="Base_Column_List" >

字段名1,字段名2

</sql>

2、然后通过id引用
<select id="selectAll">
select 
<include refid="Base_Column_List" />
    from 表名
</select>

这时<include refid="Base_Column_List" />会自动把上面的代码贴过来。

数据库中查询的语句就可以解析为:select 字段名1,字段名2 from 表名

下面贴上自己的代码可进行参考

<sql id="Base_Column_List">
    uid, username, password, role
</sql>

  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    
    select 
    <include refid="Base_Column_List" />
    from usr
    where uid = #{uid,jdbcType=INTEGER}
  </select>

就等同于


  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
    
    select 
    uid, username, password, role
    from usr
    where uid = #{uid,jdbcType=INTEGER}
  </select>

总结:

<include refid="Base_Column_List" /> 这个在MyBatis查询数据库的sql中经常会出现。在上面已经定义,作用相当于 * ,

Base_Column_List是固定的几个字段,而用*号的话会降低查询效率,因为后期数据库的字段会不断增加,也可以说是一个优化数据库查询的小技巧吧

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐