数据库组件

为了使Spring能够访问数据库,我们需要导入三个依赖,即数据库驱动mysql-connector-java,数据库连接池druid和数据库映射工具mybatis-spring-boot-starter

为了保证版本的一致性,使用官网工具添加依赖

mybatis-spring-boot-starter封装了Mybatis的核心功能并提供了相关的默认配置. 因此只需要在启动类加上@MapperScan注解即可完成MyBatis的配置. 在配置文件中加入如下的配置项对数据库连接池进行配置。

1
2
3
4
5
6
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/document?serverTimezone=UTC&allowMultiQueries=true
username: root
password: 123456
type: com.alibaba.druid.pool.DruidDataSource

根据日志给出的提示, 数据库驱动类会自动加载, 因此不需要手动配置driver-class-name属性. mysql-connector-java依赖的配置和前面介绍的过程一致, 此处不再赘述.

MyBatis

查看详细日志

Spring Boot集成了LogBack日志系统, 因此可以直接在配置文件中通过以下配置来调整日志级别, 启动针对Mapper类的详细日志.

1
2
3
logging:
level:
top.lizec.smartreview.mapper: TRACE

这相当于对所以位于top.lizec.smartreview.mapper包下的类都开启TRACE级别的日志输出, 从而可以显示详细的SQL语句.

使用YML配置

任意在XML中的配置, 都可以在yml文件中直接进行配置, 例如MyBatis的配置文件中如下的内容

1
2
3
4
5
<configuration>
<settings >
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
</configuration>

就等价于下面的配置文件.

1
2
3
mybatis:
configuration:
map-underscore-to-camel-case: true

基本上所有的属性都可以按照上面的方式进行配置, 从而可以完全避免写XML格式的MyBatis配置文件

TK MyBatis

基本配置

TK MyBatis是一个第三方库, 可以帮助我们简化MyBatis的开发. Tk提供了大量的组件, 通过直接继承这些组件, 再加上少量的配置, 就可以实现大部分的数据库功能.

首先导入依赖

1
2
3
4
5
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>版本号</version>
</dependency>

接下来, 在启动类上加入扫描的注解

1
2
3
@tk.mybatis.spring.annotation.MapperScan(basePackages = "扫描包")
@SpringBootApplication
public class SampleApplication { ... }

完成上述配置以后, 就可以创建需要的实体类和Mapper类, 例如

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

// User.java
@Data
public class User implements Serializable {

private static final long serialVersionUID = -3748212043335093479L;
private Integer id;
private String name;
private Integer sex;
}

// mapper.java
@Mapper
public interface UserMapper extends tk.mybatis.mapper.common.Mapper<User> {
}

Mapper类不需要任何代码就自动实现了大量的基础功能, 常见的增删改查操作都可以直接调用.

扩展方法

如果默认提供的方法不能满足要求, 还可以通过扩展来实现自己的方法. 扩展可以通过注解进行配置, 也可以使用XML文件进行配置. 具体的配置方法可以参考以下的官方文档:

PageHelper

PageHelper是一个分页插件

事务隔离与传播机制

Sping事务隔离级别和传播机制实际上只是一套规则, 对于这套规则的定义和使用, 我认为以下的三篇文章已经进行了充分的解释. 因此, 本文不需要再补充相关内容.

最后更新: 2022年10月30日 09:33

版权声明:本文为原创文章,转载请注明出处

原始链接: https://lizec.top/2021/09/01/Spring%E7%AC%94%E8%AE%B0%E4%B9%8B%E6%95%B0%E6%8D%AE%E5%BA%93/