1、SpringBoot高级用法
1.1LomBok插件
1.1.1Maven坐标查询
网址:
https://mvnrepository.com
,可以在线查找Maven包的相关信息
1.1.2添加LomBok jar包
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
1.1.3LomBok使用
作用:通过程序自动生成
实体对象
的get/set/toString/equals/hashCode等方法。
@Accessors(chain = true)(链式加载)原理:重启了pojo的set方法,返回当前对象
public User setId(Integer id) {
this.id = id;
return this;
}
LomBok的常用注解:
1.1.4关于LomBok面试问题(初级)
问:lombok的使用需要在IDEA提前安装插件!如果项目在Linux系统中部署发布,是否需要提前安装插件!
答:不需要!
原因:
lombok插件只在编译期有效
(编译期:由xxx.java文件编译为xxx.class文件),在打包之前class文件中已经包含了set/get等方法,所以项目打包之后可以直接运行,无需安装插件。
2、BpringBoot整合MyBatis
2.1检查是否安装MySQL数据库或MariaDB
2.1.1检查MySQL数据库或MariaDB的服务是否启动
说明:正常情况下MySQL的服务项开机自启,有时由于目某种原因导致数据库服务启动失败
问题描述:数据库连接报错,显示连接不可用
检查服务项:
数据库版本:推荐使用MariaDB,不使用Mysql 5.8
2.1.2导入数据
以SQLYog为例
-
新建数据库连接:
-
SQL用法
2.1.3导入和导出数据库
- 导出数据库:将MySQL中的数据库以:xxx.sql文件进行转储
- 导出数据库:读取xxx.sql文件之后工具执行其中的sql,最终实现数据的导入功能
-
说明:上述的操作称之为数据库
冷备份
,一般在生产环境下为了保证数据的安全,一般都会定期备份。(周期3-7天左右)一般一式三份数据 -
特点:冷备份容易丢失数据,热备份可以实现实时备份。
2、SpringBoot整合Mybatis
2.1创建项目
2.2.1创建Maven项目
-
选择Maven新建项目
-
编辑Maven坐标
- 导入SpringBoot的jar包文件
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.5.2</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
<!-- 跳过测试类打包 -->
<skipTests>true</skipTests>
</properties>
<!-- 原则:按需导入 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<!-- SpringBoot的启动项
再包内部 SpringBoot已经完成了项目的 "整合"
Web相当于导入的SpringMVC
-->
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--spring整合mybatis 暂时 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
</dependencies>
<!-- build:SpringBoot项目与Maven整合的插件
可以通过插件,执行项目的打包/测试/文档生成等操作
PS:该插件不能省略,省略该插件时 利用命令启动时报错,没有主清单信息
-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.5.2</version>
</plugin>
</plugins>
</build>
2.2.2编辑主启动类
2.2.3 编辑POJO实体对象
一般实体对象只需要添加get/set/toString等等方法,无需添加构造方法
2.2.4 序列化的作用
一般如果需要对象传递时,要求POJO对象
必须实现序列化接口
,否则数据传输必然报错
2.2 整合Mybatis
2.2.0 SpringBoot整合Mybatis步骤
- 添加jar包文件依赖
- SpringBoot整合Mybatis 添加配置文件 (1.连接数据库 2. SpringBoot整合Mybatis)
- 创建Mapper接口
- 创建XML映射文件
导入jar包文件
- Mybatis包
- 数据库驱动包
- JDBC包
<!--springBoot数据库连接 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!-- 引入数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!--spring整合mybatis 暂时 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
2.2.2 关于数据源配置
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
参数说明:
- serverTimezone=GMT%2B8: %2B = +GMT +8&
- useUnicode=true&characterEncoding=utf8: 是否使用unicode及设定字符集
- autoReconnect=true:是否自动重连
- allowMultiQueries=true:是否允许批量操作
2.2.3 Mybatis配置文件
mybatis:
#定义别名包: 实现对象映射
type-aliases-package: com.jt.pojo
#加载映射文件一个接口对应一个映射文件
mapper-locations: classpath:/mybatis/*.xml
#开启驼峰映射
configuration:
map-underscore-to-camel-case: true
3、测试Mybatis整合
3.0 编辑UserMapper接口/映射文件
-
编辑UserMapper接口
- 编辑UserMapper.xml映射文件
<mapper namespace="com.jt.mapper.UserMapper">
<!--CRUD
定义别名包: 添加了别名包之后可以简化resultType编辑.
-->
<select id="getAll" resultType="User">
select * from demo_user
</select>
<!--驼峰命名规则
表字段: user_id,user_name
对象的属性: userId,userName
resultType: 保证属性与字段名称必须一致.
Mybatis提供了驼峰命名规则:
规则: 字段user_id~~~去除_线~~~之后映射对象的属性
userId
-->
</mapper>
3.1.1 Spring容器管理Mapper接口
说明:利用@MapperScan注解为接口创建代理对象
3.1.2 编辑测试案例