1. SpringBoot高级用法
1.1 lombok
1.1.1 添加jar包依赖
在pom.xml文件中添加lombok的jar包依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependencies>
1.1.2 在线查找jar包依赖的代码
https://mvnrepository.com/
1.1.3 lombok的使用
作用: 通过程序自动生成实体对象的get/set/toString/…等方法
注意: 使用前,根据需求加注解
链式加载的原理: 在get/set方法中返回本类对象
注解: @Accessors(chain = true)
public User setId(Integer id) {
this.id = id;
return this;
}
常用注解:
1.1.4 lombok面试问题
问题: lombok的使用需要在IDE中提前安装插件!
如果在Linux系统中步数发布,是否需要提前安装插件?
答案: 不用!
原因: lombok插件编译期有效 (编译期:由xxx.java文件编译为xxx.class文件) 在打包之前 class文件已经包含了get/set等方法, 所以项目打包后可以直接运行,无需安装插件!!
2. SpringBoot整合Mybatis
2.1 导入数据库
2.1.1 检查数据库是否可用
说明:mysql服务项正常会开机自启动, 但有的时候由于某种原因 会导致数据库服务启动失败.
问题描述: 数据连接报错,连接不可用
1.检查服务项状态
2.数据库版本:
使用mariadb ,不要使用mysql 5.8版本(版本太高或太低容易出问题)
2.1.2 数据库客户工具-SqlYog…
2.1.3 数据库的导入和导出
导出数据库: 将mysql的文件义xxx.sql文件进行转储.
导入数据库: 读取xxx.sql文件之后 工具执行其中的sql,最终实现数据的导入.
说明: 上述操作称之为 数据库的冷备份,一般生产环境下 为了保证数据库的安全,会定期冷备份(周期:3-7天).一般1式3份,数据库的冷备份是恢复数据的最后有效的手段
注意: 冷备份容易丢失数据
导出: 右键点击要导出的库
导入: 右键点击空白处
2.2 SpringBoot整合Mybatis
2.2.1 创建maven项目
2.2.2 编辑主启动类
package com.jt;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class RunApp {
public static void main(String[] args) {
SpringApplication.run(RunApp.class,args );
}
}
2.2.3 实现类序列化的作用
实现序列化作用: 保证数据传输的文件完整性
package com.jt.pojo;
import lombok.Data;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@Accessors(chain = true)
//实体对象的作用: 用来实现参数传递
public class User implements Serializable {//实现序列化作用: 保证数据传输的文件完整性
private Integer id;
private String name;
private Integer age;
private String sex;
}
2.3 整合mybatis
2.3.1 添加jar包
- mybatis包
- 数据库驱动包
- JDBC包
<!--引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--spring整合mybatis 暂时 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
2.3.2 创建application.yml UserMapper.xml 文件
核心配置文件 application.yml :
server:
port: 8090
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
username: root
password: root
#如果数据库密码以数字0开头 则必须使用""号包裹
#password: "01234"
#SpringBoot整合Mybatis配置
mybatis:
#添加别名包
type-aliases-package: com.jt.pojo
# 加载映射文件,一个借口对应一个映射文件
mapper-locations: classpath:/mybatis/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
编辑UserMapper接口
映射文件 UserMapper.xml :
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace必须与UserMapper接口一一对应-->
<mapper namespace="com.jt.mapper.UserMapper">
<!-- id与接口里的方法名一致-->
<select id="getAll" resultType="User">
select * from demo_user
</select>
<!--驼峰命名的规则
表字段: user_id,user_name
对象的属性: userId,userName
resultType: 保证属性与字段名必须一致
Mybatis 提供驼峰命名规则:
字段名user_id 去除下划线之后再映射属性-->
</mapper>
2.4 测试SpringBoot整合
2.4.1 创建测试类
注意: 要在主启动类同包或子包下.
package com.jt;
import com.jt.mapper.UserMapper; import com.jt.pojo.User; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
@SpringBootTest public class TestSpringBoot {
@Autowired
private UserMapper mapper;
@Test
public void test(){
List<User> list = mapper.getAll();
for(User u: list){
System.out.println(u);
}
} }
**添加@SpringBootTest注解:**表示从Spring容器中可以直接获取对象进行调用.
依赖注入接口时,需要在启动类上添加 @MapperScan(“com.jt.mapper”) 注解