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. 在Google Colab中导入一个本地模块或.py文件

    模块与单个.py文件的区别,模块中含有__init__.py文件,其中函数调用使用的是相对路径,如果使用导入.py文件的方法在Google Colab中导入模块 会报错:Attempted relat ...

  2. 安卓SQLite数据库操作(上)

    安卓系统自带数据库,名为SQLite.这篇文章我们用一个Demo来讲解安卓操作数据库的例子. By the way, 安卓创建的数据库文件存放在/data/data/<包名>/databa ...

  3. c++primer-p101.ex3.24

    要求使用迭代器 读入一组整数并把它们存入一个vector对象 1. 将相邻每对整数和输出 2. 先输出第一个和最后一个数的和,然后是第二个和倒数第二个...等等 自己写的: #include<i ...

  4. hibernate学习笔记(5)在数据库中存取图片

    如何从数据库读取存入的图片,即Blob(二进制)数据. 先从数据库读取对象. 再从获取的对象中得到blob对象. 通过blob对象的getBinaryStream()方法获取input输出流. 之后通 ...

  5. session详解&和cookie的区别

    session简介 1. 定义 session用来保存会话数据, 将数据保存到服务器中. 2. 作用 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),一个浏览器独占一 ...

  6. git安装、git和GitHub的配合使用、git和码云的配合使用

    1 git安装请参见廖雪松的git教程前面几节 点击前往 2 git速成之基本命令 点击前往 3 git 和 GitHub 配合使用之基础 点击前往 4 git 和 GitHub 配合使用之进阶 点击 ...

  7. css 层叠式样式表(3)

    样式分类 大小 -- 调整div大小,长 width,高 height.长可以直接100%横向沾满屏幕,高不可以. 背景 background-color  背景色 background-image ...

  8. QT中显示图像数据

    博客转载自:https://blog.csdn.net/lg1259156776/article/details/52325091 一般图像数据都是以RGBRGBRGB……字节流的方式(解码完成后的原 ...

  9. Inheritance with EF Code First: Part 2 – Table per Type (TPT)

    In the previous blog post you saw that there are three different approaches to representing an inher ...

  10. window.location和window.location.href和document.location的关系

    1,首先来区分window.location和window.location.href. window.location.href是一个字符串. 而window.location是一个对象,包含属性有 ...