sql 片段:
<sql id="columnBase">
`id`,
`title`,
`author_id` as authorId,
`state`,
`featured`,
`style`
</sql>
 
实际应用在代码中:
 <sql id="periodicalColumns">
         a.id AS "id",
         a.name AS "name",
         a.country AS "country",
         a.type AS "type",
         a.publish AS "publish",
         a.introduction AS  "introduction",
         a.logo AS "logo",
         a.company AS "company",
         a.CN AS "cn",
         a.size AS "size",
         a.address AS "address",
         a.ISSN AS "issn",
         a.languages AS "languages",
         a.email AS "email",
         a.year AS "year",
         a.create_by AS "createBy.id",
         a.create_date AS "createDate",
         a.update_by AS "updateBy.id",
         a.update_date AS "updateDate",
         a.remarks AS "remarks",
         a.del_flag AS "delFlag"
     </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">
 <mapper namespace="com.thinkgem.jeesite.modules.tpydg.periodical.dao.PeriodicalDao">

     <sql id="periodicalColumns">
         a.id AS "id",
         a.name AS "name",
         a.country AS "country",
         a.type AS "type",
         a.publish AS "publish",
         a.introduction AS  "introduction",
         a.logo AS "logo",
         a.company AS "company",
         a.CN AS "cn",
         a.size AS "size",
         a.address AS "address",
         a.ISSN AS "issn",
         a.languages AS "languages",
         a.email AS "email",
         a.year AS "year",
         a.create_by AS "createBy.id",
         a.create_date AS "createDate",
         a.update_by AS "updateBy.id",
         a.update_date AS "updateDate",
         a.remarks AS "remarks",
         a.del_flag AS "delFlag"
     </sql>

     <sql id="periodicalJoins">
     </sql>

     <select id="get" resultType="Periodical">
         SELECT
             <include refid="periodicalColumns"/>
         FROM periodical a
         <include refid="periodicalJoins"/>
         WHERE a.id = #{id}
     </select>

     <select id="findList" resultType="Periodical">
         SELECT
             <include refid="periodicalColumns"/>
         FROM periodical a
         <include refid="periodicalJoins"/>
         <where>
             a.del_flag = #{DEL_FLAG_NORMAL}
             <if test="type != null and type != ''">
                 AND  type = #{type}
             </if>
             <if test="name != null and name != ''">
                 AND a.name LIKE
                     <if test="dbName == 'oracle'">'%'||#{name}||'%'</if>
                     <if test="dbName == 'mssql'">'%'+#{name}+'%'</if>
                     <if test="dbName == 'mysql'">concat('%',#{name},'%')</if>
             </if>
         </where>
         <choose>
             <when test="page !=null and page.orderBy != null and page.orderBy != ''">
                 ORDER BY ${page.orderBy}
             </when>
             <otherwise>
                 ORDER BY a.update_date DESC
             </otherwise>
         </choose>
     </select>

     <select id="findAllList" resultType="Periodical">
         SELECT
             <include refid="periodicalColumns"/>
         FROM periodical a
         <include refid="periodicalJoins"/>
         <where>
             a.del_flag = #{DEL_FLAG_NORMAL}
         </where>
         <choose>
             <when test="page !=null and page.orderBy != null and page.orderBy != ''">
                 ORDER BY ${page.orderBy}
             </when>
             <otherwise>
                 ORDER BY a.update_date DESC
             </otherwise>
         </choose>
     </select>

     <insert id="insert">
         INSERT INTO periodical(
             id,
             name,
             country,
             type,
             publish,
             introduction,
             logo,
             company,
             CN,
             size,
             address,
             ISSN,
             languages,
             email,
             year,
             create_by,
             create_date,
             update_by,
             update_date,
             remarks,
             del_flag
         ) VALUES (
             #{id},
             #{name},
             #{country},
             #{type},
             #{publish},
             #{introduction},
             #{logo},
             #{company},
             #{cn},
             #{size},
             #{address},
             #{issn},
             #{languages},
             #{email},
             #{year},
             #{createBy.id},
             #{createDate},
             #{updateBy.id},
             #{updateDate},
             #{remarks},
             #{delFlag}
         )
     </insert>

     <update id="update">
         UPDATE periodical SET
             name = #{name},
             country = #{country},
             type = #{type},
             introduction = #{introduction},
             logo = #{logo},
             company = #{company},
             CN = #{cn},
             size = #{size},
             address = #{address},
             ISSN = #{issn},
             languages = #{languages},
             email = #{email},
             year = #{year}
         WHERE id = #{id}
     </update>

     <update id="delete">
         UPDATE periodical SET
             del_flag = #{DEL_FLAG_DELETE}
         WHERE id = #{id}
     </update>

 </mapper>

8. sql 片段的更多相关文章

  1. MyBatis的一系列问题的处理(遍历Map集合和智能标签和属性和字段不一样的解决办法 和sql片段)(三)

    一.字段名与属性名(数据库的名字)不一样怎么办? 方案一:在小配置中配置一个resultMapper <!--方案一:resultMapper 字段名与属性名不一致 --> <res ...

  2. 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

    动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的拼接和组装.可以简单的说成Mybatis中可以动态去的判断需不需要某些 ...

  3. mybatis动态SQL中的sql片段

    在mybatis中通过使用SQL片段可以提高代码的重用性,如下情景: 1.创建动态SQL <sql id="sql_count">select count(*)< ...

  4. ibatis复用SQL片段、引入片段 动态条件增加

    1:ibatis复用SQL片段.引入片段  使用[sql]和[include]标签: 通常情况下,你会这样写:xml 代码 <select id="selectItemCount&qu ...

  5. Mybatis Sql片段的应用

    在一个查询里,针对各种不同数据库,有时候只是一部分 SQL 是不相同的,为避免相同的部分复制多次,所以将不相同的部分进行适当的隔离,再重用就可以了. 在 MyBatis 里声明两段 <sql d ...

  6. 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

     1 PersonTestMapper.xml中的内容如下: <?xmlversion="1.0"encoding="UTF-8"?> < ...

  7. SSM-MyBatis-05:Mybatis中别名,sql片段和模糊查询加getMapper

    ------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 简单概述一下本讲 别名,sql片段简单写一下,模糊查询多写一点 一.别名 <typeAliases> ...

  8. sql片段

    1):定义sql片段 <!-- 定义sql片段 --> <!-- id: sql片段的标识 经验:1:基于单表来定义sql片段,这样的话sql片段的可重用性才高 2:sql片段中不要 ...

  9. 使用mybatis提供的各种标签方法实现动态拼接Sql。使用sql片段提取重复的标签内容

    Sql中可将重复的sql提取出来,使用时用include引用即可,最终达到sql重用的目的,如下: <select id="findUserByNameAndSex" par ...

  10. java-mybaits-00402-Mapper-动态sql-if、where、foreach、sql片段

    1.动态sql(重点) 通过mybatis提供的各种标签方法实现动态拼接sql. 什么是动态sql mybatis核心 对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接.组装.   ...

随机推荐

  1. paramiko连接方式

    链接方法: 方式一: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh. ...

  2. Solaris ssh配置主机间信任关系

    假设需要配置从主机com00biiitf001登录主机ols00biiitf001时不需要密码,则采用以下步骤配置: com00biiitf001上产生公用/私有密钥对 $ ssh-keygen -t ...

  3. leetcode645

    vector<int> findErrorNums(vector<int>& nums) { ; int S[N]; int n = nums.size(); ; i ...

  4. does not contain bitcode. You must rebuild it with

    *** does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE ...

  5. opencv3更换图片背景

    #include <opencv2/opencv.hpp>#include <iostream> using namespace std;using namespace cv; ...

  6. Centos7安装mysql缺乏yum源怎么安装

    找到mysql5.6的centos的repo源,终于解决mysql的安装问题: 1.确保centos安装了wget,没有的话安装wget   1 yum install wget 2.下载mysql的 ...

  7. Pig Latin程序设计1

    Pig是一个大规模数据分析平台.Pig的基础结构层包括一个产生MapReduce程序的编译器.在编译器中,大规模并行执行依据存在.Pig的语言包括一个叫Pig Latin的文本语言,此语言有如下特性: ...

  8. 形式化方法的逆袭——如何找出Timsort算法和玉兔月球车中的Bug?

    https://bindog.github.io/blog/2015/03/30/use-formal-method-to-find-the-bug-in-timsort-and-lunar-rove ...

  9. scala的object知识点

    1:object的中的代码,会在object对象被调用的时候执行且只会执行一次 object Demo{ println("gaoxing") def name = "n ...

  10. wrodcount

    PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划  20  20 · Estimate · 估计这个任务需要多少时间 20   20 Development 开 ...