1:提取公共的sql语句:

2:动态添加----sql语句:

代码:

  1. <insert id="test1" parameterType="com.floor.shop.model.Product">
  2. INSERT INTO product
  3. <trim prefix="(" suffix=")" suffixOverrides=",">
  4. <if test="productName!=null and productName!=''">
  5. product_name,
  6. </if>
  7. <if test="stockNum!=null and stockNum!=''">
  8. stock_num,
  9. </if>
  10. <if test="salePrice!=null and salePrice!=''">
  11. sale_price,
  12. </if>
  13. </trim>
  14. values
  15. <trim prefix="(" suffix=")" suffixOverrides=",">
  16.  
  17. <if test="productName!=null and productName!=''">
  18. #{productName},
  19. </if>
  20. <if test="stockNum!=null and stockNum!=''">
  21. #{stockNum},
  22. </if>
  23. <if test="salePrice!=null and salePrice!=''">
  24. #{salePrice},
  25. </if>
  26.  
  27. </trim>
  28. </insert>

3:动态修改----sql语句:

4:增加前避免重复:

(当userName在数据库中不存在的情况下,增加到数据库)

5:修改或者新增获取受影响的行数:

6:新增自动获取主键(新增id):

7:dao多参数处理,不封装的情况下传递参数:

mapper中的sql语句不用添加参数类型(paramater=" ")

8:传入多个值的数组处理(foreach):

接口:

映射文件:

测试:

批量新增,数据采用list传入:

  1. <insert id="saveCustomerOpenBankInfo" parameterType="List">
  2. INSERT INTO resource_customer_openbank(id,open_name,account_number,open_bank,customer_id)
  3. VALUES
  4. <foreach item="item" collection="list" index="idx" open="" separator="," close="">
  5. (#{item.id}, #{item.openName}, #{item.accountNumber},#{item.openBank},#{item.customerId})
  6. </foreach>
  7. </insert>

批量插入去重数据:

  1. <!--插入用户角色信息  -->
  2.  
  3.     <insert id="insertUserRole" parameterType="ArrayList" >
  4.     insert into usi_user_role (user_id,role_id)
  5.     <foreach collection="list" item="item" index="index" separator="union all">
  6.     select #{item.userid,jdbcType=VARCHAR},
  7.     #{item.roleid,jdbcType=VARCHAR} from dual  where not exists(select * from usi_user_role
  8.      where user_id = #{item.userid,jdbcType=VARCHAR}
  9.        and role_id = #{item.roleid,jdbcType=VARCHAR})
  10.     </foreach>
  11.  
  12.   </insert>

mybatis like 拼接、动态sql拼接:

1、CONCAT()拼接%:

SELECT * FROM t_usr WHERE name like CONCAT('%',#{name},'%')

2:bind:

  1. SELECT *
  2. FROM t_usr
  3. WHERE
  4. <if test="name !=null || name !=''">
  5. <bind name="name" value="'%' + name + '%'"/>
  6. name like #{name}
  7. </if>


 

mysql中sql语句的常用语句的更多相关文章

  1. mysql中SQL执行过程详解与用于预处理语句的SQL语法

    mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...

  2. mysql中与 in 相反的语句 find_in_set('数据',字段名)

    在 mysql 中,我们经常用 in 来查询众多数据中是否有数据表字段中的值: 如果我们在数据表的字段中添加了很多值,然后查询某个值是否是这个字段中众多值的一个时可以用 find_in_set('数据 ...

  3. MySQL增删改查的常用语句汇总

    MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...

  4. MySQL进口.sql文件和常用命令

    MySQL进口.sql文件和常用命令 在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次运行多条sql命令的.在mysql中运行sql文件的命令: mysql> so ...

  5. MySQL中SQL语句2

    上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...

  6. MySQL 中 SQL语句大全(详细)

    sql语句总结 总结内容 1. 基本概念 2. SQL列的常用类型 3. DDL简单操作 3.1 数据库操作 3.2 表操作 4. DML操作 4.1 修改操作(UPDATE SET) 4.2 插入操 ...

  7. MySql中SQL语句与其他数据库不一样的地方

    目前发现的mysql与其他数据库如SqlServer.Oracle不同的地方 mysql中的注释(--)后要多加一个空格才生效 mysql中查询条件的字符串可以是双引号 mysql中查询条件的字符串不 ...

  8. mysql 中sql语句的执行顺序

    今天突然想起来,之前面试一个很牛逼的公司(soho)的时候,一个美眉面试官,面试的时候问到了很多之前都没有意识到的问题,回想起来那美眉看着年纪不大,技术那是真666啊.好了说一下人家问的这个有关mys ...

  9. Mysql中truncate table和delete语句的区别

    Mysql中的truncate table和delete语句都可以删除表里面所有数据,但是在一些情况下有些不同! 例子: truncate table gag; (1)truncate table删除 ...

  10. MySQL导入SQL文件及常用命令

      在MySQL Qurey   Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source   d:/myprogr ...

随机推荐

  1. 使用docker-compose 大杀器来部署服务

    使用docker-compose 大杀器来部署服务 上 我们都听过或者用过 docker,然而使用方式却是仅仅用手动的方式,这样去操作 docker 还是很原始. 好吧,可能在小白的眼中噼里啪啦的对着 ...

  2. 【转帖】2018年Windows漏洞年度盘点

    2018年Windows漏洞年度盘点丨老漏洞经久不衰,新0day层出不穷 腾讯电脑管家2019-02-12共17875人围观 ,发现 1 个不明物体网络安全资讯 https://www.freebuf ...

  3. windows上面链接使用linux上面的docker daemon

    1. 修改linux 上面的 docker的 配置文件. vim /usr/lib/systemd/system/docker.service 注意 这个是centos的路径 发现ubuntu的路径不 ...

  4. Angular $cookieStore简单应用

    angular.module('cookieStoreExample', ['ngCookies']) .controller('ExampleController', ['$cookieStore' ...

  5. matplotlib绘图

    fig = plt.figure() ax=plt.gca() timeList = np.array(timeList) timeList=timeList*100 timeList1 = np.a ...

  6. Axure8.0从入门到精通

    1. 新建工程 菜单->File->New 2. 添加组件并编辑组件 选中左侧Libary可选择Default/Flow/Icons,找到相应的组件并移动到工作区:并在右侧选中相应的组件属 ...

  7. HTML-封装原生Ajax

    function ajax(data){ //data{data:"",dataType:"xml/json",type:"get/post" ...

  8. BZOJ3932[CQOI2015]任务查询系统——主席树

    题目描述 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分.超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第E ...

  9. jQuery文档处理总结

    <!DOCTYPE html> <html lang="cn"> <head> <meta charset="UTF-8&quo ...

  10. Android 访问 Webapi 更新UI

    首先,写一个访问webapi的工具类 import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import or ...