这个帖子是个汇总笔记,目前用到的一些语句统计一下,网上看的很多帖子写的繁琐,找个语句扯一堆别的,我直接简单的对应功能来一句句的标明清晰一点,后面再学到新的语句会继续更新进来。这些都是我自己写过有用的,不是百度搜来的,没亲自试过就不写上来了。
增:
(1)增加一条数据:
@Update("INSERT INTO `表名`( `name`, `address`, `age`) VALUES (#{name},#{address},#{age}")
删:
(1)根据传的id删除一条对应数据:
@Delete("delete from 表名 where id=#{id}")
改:
(1)根据id修改对应一条数据:
@Update("update 表名 set name=#{name},address=#{address},age=#{age},sex=#{sex},phone=#{phone} where id=#{id}")
查:
(1)表的所有数据:
@Select("select * from 表名")
(2)按照id查询对应数据:
where:代表按条件查询
@Select("select * from 表名 where id=#{id}")
(3)传参查询,多条件用and链接:
@Select("select * from 表名 where username = #{username} and password= #{password}")
(4)查询表内的数据总条数:
count(*):代表查询总数,只有一个星号就是查询数据
@Select("SELECT count(*) FROM 表名")
(5)查询表内模糊查询符合条件的数据的总数:
count代表查总数
where是查询条件
like是模糊查询
searchValue是参数,传进去
前后百分号是模糊查询的字符不管在前面还是后面都搜索出来意思,只加在前面就模糊搜索只能收到字符在前面的数据,后面有的就搜索到,后百分号同理
@Select("select count(*) from 表名 where 字段名 like concat('%',#{searchValue},'%')")
(6)模糊查询:
查询表中这个字段的数据是否符合模糊查询条件
@Select("select * from 表名 where 字段名 like concat('%',#{searchValue},'%')")
(7)分页查询(根据页码和页数查询对应数据):
limit:代表分页
currentPage:传进来的参数,代表当前页
pageSize:传进来的参数,代表每页显示个数
@Select("select * from 表名 limit #{currentPage},#{pageSize}")
(8)结合符合模糊查询条件的数据并且分页查询:
@Select("select * from 表名 where 字段名 like concat('%',#{searchValue},'%') limit #{currentPage},#{pageSize}")
(9)在符合条件的数据随机抽取2条数据
entryName就是条件判断,不需要条件的直接删除WHERE entryName=#{entryName}
//搜索词条对应的随机数据
@Select("SELECT * FROM simulation WHERE entryName=#{entryName} ORDER BY RAND() LIMIT 2 ")
id自动递增方法:
用navicat直接按图设置,勾选了自动递增,他就可以自动递增了
再插入数据的时候不需要输入id,直接输入别的字段就行了,会自动递增。
插入数据时自动生成当前时间
按图设置
注意图中要输入的:CURRENT_TIMESTAMP
设置自动递增id后删除一个数据,再次新增数据id递增没有清除
我们时长测试的时候增加删除时会有一种情况,当id设置自动递增的时候,点击下面的减号删除一条数据,正常比如一条数据id是1,那么删除后再新增,数据应该id还是1,但是会出现从2开始递增的情况,因为第一条数据的递增并没有清除,所以需要在数据库内输入指令清除所有
图1:点减号删除对应一条数据
图2:输入这个语句点击运行就可以清空对应的表
truncate table 表名
注意:此语句会把表中数据全部清空

自动生成日期返回前端的格式转换方法
上面我们定义的Timestamp格式的日期,那我们返回到前端的时候前端会出现这样的格式:
2022-03-30T02:30:00.000+0000
但是实际上,前端需要的是这样的格式
2022-03-30
解决办法:
在你的实体类时间的变量上面加个注释。
前面的字母格式分别代表,年月日,时分秒。后面GTM+8代表中国时区,也就是按中国时间计算。
如果你想要2022-03-30这种格式,就把 yyyy-MM-dd HH:mm:ss 改成 yyyy-MM-dd
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private Timestamp createTime;