写SQL能力在日常的开发工作中很重要,我下面主要展示在xml里面经常用的标签,常用的用法
查询和修改是最常用的,至于新增的删除一般都是用工具实现的,
查询语句:select 字段 from 表 where .....
修改语句 update 表名 set 字段=? where .....
- <select >select> 查询标签,标签内写SQL
- <update >update>修改标签,标签内写SQL
- <where>where>
- 条件标签,标签内写条件
- <if test="xxx != null and xxx != ''"> if> if标签 ,如果不为空就执行,如果需要对时间进行判断and xxx != ''",就不要写,时间不是字符串
- <if test="ids!= null and ids.size >0 ">
- and id in
- <foreach collection="ids" item="id" open="(" close=")" separator=",">
- #{id} foreach>
- if>
- foreach标签,需要对集合进行遍历操作,当前段传了个集合给你
上面的标签是最常用的,掌握这四个基本就够用了。
我主要说一下if标签的用法,if标签在权限,是否是当前用户登录时候,分页查询的条件,这两个地方是最常见的,比如下面的名字相等,和时间是否一致
- <if test="name != null and name != ''">
- name=#{name}
- if>
- <if test="startDate != null ">
- startDate=#{startDate}
- if>
foreach ,比如说前端同时传给你几个id,我把这个集合取名加ids,遍历这个ids ,拼接成and id in (?,?,?)
- <if test="ids!= null and ids.size >0 ">
- and id in
- <foreach collection="ids" item="id" open="(" close=")" separator=",">
- #{id} foreach>
- if>
concat拼接 字段,拼接结果 张三-111111111
concat(name, '-', phone)
if语句这里的if语言不是上面的标签
if(a成立,执行这个,不成立执行后面的)
时间函数,我一般都会在java那边规定格式,这个看个人 结果 2022-11-20 00:01:02
DATE_FORMAT(start_time,'%Y-%m-%d %h:%i:%s') as startTime,
保留位数 除以100保留两位小数
ROUND(route/1000,2) as route
count 一般用累计个数, sum是求和 , group by 分组 order by 排序
掌握上面的写简单的业务应该没问题了