【Mybatis】动态sql之sql的复用

简介: 【Mybatis】动态sql之sql的复用

在sql优化中,一般不允许直接使用select*from ,如果是全字段查询就需要写上所有的字段,这时候就可以

查询条件优化

<sql id="Base_Column_List">
    userMainId, userPassword, authtype, modifyPwdTime, modifyPwdFlag, OpenId, VerifyCode
  </sql>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
    select 
    <include refid="Base_Column_List" />
    from bug_LoginUser
    where userMainId = #{userMainId,jdbcType=VARCHAR}
  </select>

在使用sql片段时使用include标签通过sql片段的id进行引用,sql片段的ID在当前空间必须为唯一的

where条件

当然,sql片段中也可以写其他的内容,只要符合语法规范都是可以的。如下:

<sql id="sql_where">
      <trim prefix="WHERE" prefixoverride="AND | OR">
        <if test="id != null">AND id=#{id}</if>
        <if test="name != null and name.length()>0">AND name=#{name}</if>
        <if test="gender != null and gender.length()>0">AND gender=#{gender}</if>
      </trim>
    </sql>
  <select id="updateByKey" parameterType="Map" resultType="List">
      select * from user 
      <include refid="sql_where">
    </select>

总结

利用sql标签就可以将一些常用的sql进行复用

目录
相关文章
|
11天前
|
SQL Java 编译器
SQL 语言:嵌入式 SQL 和动态 SQL
SQL 语言:嵌入式 SQL 和动态 SQL
20 4
|
3天前
|
SQL Java 数据库连接
MyBatis SQL 批量更新(代码➕案例)
MyBatis SQL 批量更新(代码➕案例)
6 0
|
3天前
|
SQL XML Java
MyBatis动态SQL------------------choose用法
MyBatis动态SQL------------------choose用法
14 1
|
11天前
|
SQL XML Java
MyBatis第四课动态SQL
MyBatis第四课动态SQL
|
11天前
|
SQL 存储 关系型数据库
17. Mysql 动态SQL
17. Mysql 动态SQL
|
12天前
|
SQL XML Java
Mybatis进阶——动态SQL(1)
Mybatis进阶——动态SQL(1)
18 3
|
19天前
|
SQL XML Java
|
20天前
|
SQL
【MybatisPlus】条件构造器、自定义SQL、Service接口
【MybatisPlus】条件构造器、自定义SQL、Service接口
29 0
【MybatisPlus】条件构造器、自定义SQL、Service接口
|
7月前
|
SQL 安全 Java
MyBatis映射文件深入--动态sql
MyBatis映射文件深入--动态sql
57 0
|
7月前
|
SQL XML Java
mybatis的注解开发之三种动态sql
mybatis的注解开发之三种动态sql