mysql中sql语句的常用语句
1:提取公共的sql语句:

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


代码:
<insert id="test1" parameterType="com.floor.shop.model.Product">
INSERT INTO product
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="productName!=null and productName!=''">
product_name,
</if>
<if test="stockNum!=null and stockNum!=''">
stock_num,
</if>
<if test="salePrice!=null and salePrice!=''">
sale_price,
</if>
</trim>
values
<trim prefix="(" suffix=")" suffixOverrides=","> <if test="productName!=null and productName!=''">
#{productName},
</if>
<if test="stockNum!=null and stockNum!=''">
#{stockNum},
</if>
<if test="salePrice!=null and salePrice!=''">
#{salePrice},
</if> </trim>
</insert>
3:动态修改----sql语句:

4:增加前避免重复:
(当userName在数据库中不存在的情况下,增加到数据库)

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

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

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

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

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

接口:

映射文件:

测试:

批量新增,数据采用list传入:
<insert id="saveCustomerOpenBankInfo" parameterType="List">
INSERT INTO resource_customer_openbank(id,open_name,account_number,open_bank,customer_id)
VALUES
<foreach item="item" collection="list" index="idx" open="" separator="," close="">
(#{item.id}, #{item.openName}, #{item.accountNumber},#{item.openBank},#{item.customerId})
</foreach>
</insert>
批量插入去重数据:
<!--插入用户角色信息 --> <insert id="insertUserRole" parameterType="ArrayList" >
insert into usi_user_role (user_id,role_id)
<foreach collection="list" item="item" index="index" separator="union all">
select #{item.userid,jdbcType=VARCHAR},
#{item.roleid,jdbcType=VARCHAR} from dual where not exists(select * from usi_user_role
where user_id = #{item.userid,jdbcType=VARCHAR}
and role_id = #{item.roleid,jdbcType=VARCHAR})
</foreach> </insert>
mybatis like 拼接、动态sql拼接:
1、CONCAT()拼接%:
SELECT * FROM t_usr WHERE name like CONCAT('%',#{name},'%')
2:bind:
SELECT *
FROM t_usr
WHERE
<if test="name !=null || name !=''">
<bind name="name" value="'%' + name + '%'"/>
name like #{name}
</if>
mysql中sql语句的常用语句的更多相关文章
- mysql中SQL执行过程详解与用于预处理语句的SQL语法
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...
- mysql中与 in 相反的语句 find_in_set('数据',字段名)
在 mysql 中,我们经常用 in 来查询众多数据中是否有数据表字段中的值: 如果我们在数据表的字段中添加了很多值,然后查询某个值是否是这个字段中众多值的一个时可以用 find_in_set('数据 ...
- MySQL增删改查的常用语句汇总
MySQL增删改查的常用语句汇总 以下是总结的mysql的常用语句,欢迎指正和补充~ 一.创建库,删除库,使用库 1.创建数据库:create database 库名; 2.删除数据库:drop da ...
- MySQL进口.sql文件和常用命令
MySQL进口.sql文件和常用命令 在MySQL Qurey Brower中直接导入*.sql脚本,是不能一次运行多条sql命令的.在mysql中运行sql文件的命令: mysql> so ...
- MySQL中SQL语句2
上一片介绍了一些基本的SQL的增删改查,这一片会介绍一些进阶的SQL语句使用. MySQL中的视图 视图是什么?当我们总是查询几张表的某个字段时,可以创建一张虚拟表,把这几个字段写入这个虚拟的表,这样 ...
- MySQL 中 SQL语句大全(详细)
sql语句总结 总结内容 1. 基本概念 2. SQL列的常用类型 3. DDL简单操作 3.1 数据库操作 3.2 表操作 4. DML操作 4.1 修改操作(UPDATE SET) 4.2 插入操 ...
- MySql中SQL语句与其他数据库不一样的地方
目前发现的mysql与其他数据库如SqlServer.Oracle不同的地方 mysql中的注释(--)后要多加一个空格才生效 mysql中查询条件的字符串可以是双引号 mysql中查询条件的字符串不 ...
- mysql 中sql语句的执行顺序
今天突然想起来,之前面试一个很牛逼的公司(soho)的时候,一个美眉面试官,面试的时候问到了很多之前都没有意识到的问题,回想起来那美眉看着年纪不大,技术那是真666啊.好了说一下人家问的这个有关mys ...
- Mysql中truncate table和delete语句的区别
Mysql中的truncate table和delete语句都可以删除表里面所有数据,但是在一些情况下有些不同! 例子: truncate table gag; (1)truncate table删除 ...
- MySQL导入SQL文件及常用命令
在MySQL Qurey Brower中直接导入*.sql脚本,是不能一次执行多条sql命令的,在mysql中执行sql文件的命令: mysql> source d:/myprogr ...
随机推荐
- multer处理post请求的代码演示
let express = require('express'); let multer = require('multer'); let mObj = multer({dest:__dirname+ ...
- 转《发布ionic应用到App Store的完整步骤 》
当我们开发完一个应用,就到了发布到市场的时候,Android的打包比较简单,签名之后可以放在我们自己的服务器上,让用户扫描二维码来下载,而苹果的就比较麻烦了,如果内测可以通过蒲公英等内测分发平台,但是 ...
- BZOJ4229选择——LCT+并查集+离线(LCT动态维护边双连通分量)
题目描述 现在,我想知道自己是否还有选择. 给定n个点m条边的无向图以及顺序发生的q个事件. 每个事件都属于下面两种之一: 1.删除某一条图上仍存在的边 2.询问是否存在两条边不相交的路径可以从点u出 ...
- BZOJ5371[Pkusc2018]星际穿越——可持久化线段树+DP
题目描述 有n个星球,它们的编号是1到n,它们坐落在同一个星系内,这个星系可以抽象为一条数轴,每个星球都是数轴上的一个点, 特别地,编号为i的星球的坐标是i. 一开始,由于科技上的原因,这n个星球的居 ...
- BZOJ1124 POI2008枪战Maf(环套树+贪心)
每个点出度都为1,可以发现这张图其实是个环套树森林,树中儿子指向父亲,环上边同向. 首先自环肯定是没救的,先抬出去. 要使死亡人数最多的话,显然若一个点入度为0其不会死亡,而一个孤立的环至少会留下一个 ...
- QAU 18校赛 J题 天平(01背包 判断能否装满)
问题 J: 天平 时间限制: 1 Sec 内存限制: 128 MB提交: 36 解决: 9[提交][状态][讨论版][命题人:admin] 题目描述 天平的右端放着一件重量为w的物品.现在有n个重 ...
- POJ - 1062(昂贵的聘礼)(有限制的spfa最短路)
题意:...中文题... 昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 54350 Accepted: 16 ...
- Windows Server 脚本记录Apache、Mysql 每分钟并发数
打开windows server 计划任务管理器.定时执行如下的Bat脚本即可. 在D盘新建一个monitor文件夹,创建ApacheMysql.bat文件.内容如下: 在monitor文件夹中新建m ...
- 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 11 Zabbix Item类型之Zabbix Calculated 计算型Item类型 计算类型 ...
- SharePoint 2013 首页修改
最近客户要求统一首页的风格,所以对各网站的首页进行了统一的修改. 1. 左边导航菜单修改: 修改的地方: Site Settings –> Look and feel –> Navigat ...