1:@RequestParam(defaultValue = "默认的值") 这个可以在一个参数的前面写上 要是前端不传值进来的话 这个形参就是你定义的默认值
2: slf4j 对应的是日志的输出
log.info("参数是 {}", detail);
3: 分页插件 PageHelper 用法:
准备工作: 引入依赖
3.1: 设置分页参数: PageHelper.startPage(page, pageSize);
3.2: 执行查询
3.3: 封装PageBean对象
4: @DateTimeFormat(pattern = "yyyy-MM-dd") 指定前端传进来的日期的格式
5: 操作数据库 xml配置文件 要与接口名字同包 同名
基本的代码模板:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
具体的代码演示:
注意:比如查询语句 <select>里面的id 要与接口查询的方法名保持一致 resultType要与返回的数据类型保持一致 但是xml里面写的是全类名 比如: com.findyou.mapper.EmpMapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.example.mapper.EmpMapper"><!-- 定义查询所有员工的SQL语句 --><select id="selectAllEmployees" resultType="com.example.model.Employee">SELECT * FROM employee;</select><!-- 定义根据员工ID查询员工信息的SQL语句 --><select id="selectEmployeeById" parameterType="int" resultType="com.example.model.Employee">SELECT * FROM employee WHERE id = #{id};</select><!-- 定义插入员工信息的SQL语句 --><insert id="insertEmployee" parameterType="com.example.model.Employee">INSERT INTO employee (name, age, department)VALUES (#{name}, #{age}, #{department});</insert><!-- 定义更新员工信息的SQL语句 --><update id="updateEmployee" parameterType="com.example.model.Employee">UPDATE employeeSET name = #{name}, age = #{age}, department = #{department}WHERE id = #{id};</update><!-- 定义根据员工ID删除员工信息的SQL语句 --><delete id="deleteEmployee" parameterType="int">DELETE FROM employeeWHERE id = #{id};</delete></mapper>
动态的写法是:
模糊匹配 查询包含name的
<if test = "name != null">
name like concat ('%', #{name}, '%')
</if>
6: 批量删除员工:
delete from emp where id in (1, 2, 3);
7:路径参数的接收: 在参数的前面加上 @PathVariable 表示的就是接收路径参数
比如: localhost:8080/emps/15,16,17 用的是delete的形式
8: 动态删除员工 <foreach>标签
collection: 要遍历的集合
item: 遍历出来的每一个元素
separator: 你这个集合里面每个元素的分隔符
open: 遍历之前拼接的是什么
close: 遍历之后拼接的是什么
代码演示:
<delete id = "delete"deletefrom empwhere id in<foreach collection="ids" item="id" separator="," open="{" close="}">#{id}</foreach>
</delete>
9:使用了@RequestBody注解,这样Spring会将请求的body部分转换成参数对象,并注入到参数中供方法使用
10:参数配置化:
在application.properties里面写配置信息 比如: aliyun.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
然后创建一个实体类 在类里面 定义相关的信息(属性) 注意需要在这个类的上面加上@Component的注解 目的是:通过在类上添加"@Component"注解,Spring框架会自动扫描并识别这个类,将其实例化为一个Bean,并加入到Spring应用上下文中管理。
然后通过@Value注解把之前配置的属性注入 具体的用法为: @Value("${配置文件中的key}")
11: yml(yaml)配置文件:
在 .properties文件中 servert.port=8080 servert.address=127.0.0.1 但是在yaml文件里面的格式(注意缩进的格式) #表示的是注释 注意 : 要和value之间 要加个空格
定义数组/List/Set:
hobby:- java- C- game- sport
12:配置格式的对比:
13: @ConfiguratonProperties 会自动把配置文件里面的对应的key和你加这个注解的类里面的属性等于相同的value值 在使用 @ConfigurationProperties 注解时,需要指定一个前缀(prefix),这个前缀会与配置文件中的属性名进行匹配,然后将对应的属性值注入到被注解的类的实例中。 但是前提是类里面的属性值要和配置文件里面的key要保持一致 前提还要把这个类交给ioc容器管理 也就是在这个类的前面加上@Component, 同时提供get和set方法 直接在类的前面加上@Data注解就可以了