瞎扯两句
哈喽哈喽哈喽哈喽大家好~ 这里是刺猬(误),这里其实是 Kotlin+Springboot
系列的第二篇——整合 mybatis
,只是最近在看《乐队的夏天》,对刺猬这个乐队有点喜欢嘿嘿。
正文来啦
首先,和上篇文章所写步骤一样,在 idea 用 File → New → project
创建新的项目,唯一区别的地方在于选择需要的 dependencies 的时候要把下面的 MySQL Driver
和 MyBatis Framwork
勾上。

由于要使用 Druid 作为连接池的实现,我们还需要导入相应的依赖。打开 pom.xml
,在里面添加如下内容:

之后创建此次需要连接的数据库,

然后简单创建测试用的 user
表,然后随便往里面插几条数据。

接着,打开我们项目的配置文件,这里我用的是 application.yml
作为项目配置文件,参考配置如下:
由于我用的数据库环境是 mysql-8.0.17
,所以 jdbc 的 driver 是带 cj 的。如果你用的是5.x.x的版本,driver-class-name 应是 com.mysql.jdbc.Driver
。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| #jdbc配置
spring:
datasource:
url: jdbc:mysql://ip:port/dbName?serverTimezone=GMT%2B8
username: your username
password: your password
driver-class-name: com.mysql.cj.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
#连接池的设置
druid:
#初始化时建立物理连接的个数
initial-size: 5
#最小连接池数量
min-idle: 5
#最大连接池数量 maxIdle已经不再使用
max-active: 20
#获取连接时最大等待时间,单位毫秒
max-wait: 60000
#申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
test-while-idle: true
#既作为检测的间隔时间又作为testWhileIdel执行的依据
time-between-eviction-runs-millis: 60000
#销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接
min-evictable-idle-time-millis: 30000
#用来检测连接是否有效的sql 必须是一个查询语句
#mysql中为 select 'x'
#oracle中为 select 1 from dual
validation-query: select 'x'
#申请连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
test-on-borrow: false
#归还连接时会执行validationQuery检测连接是否有效,开启会降低性能,默认为true
test-on-return: false
#是否缓存preparedStatement,mysql5.5+建议开启
pool-prepared-statements: true
#当值大于0时poolPreparedStatements会自动修改为true
max-pool-prepared-statement-per-connection-size: 20
#配置扩展插件
filters: stat,wall
#通过connectProperties属性来打开mergeSql功能;慢SQL记录
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
#合并多个DruidDataSource的监控数据
use-global-data-source-stat: true
#设置访问druid监控页的账号和密码,默认没有
stat-view-servlet:
enabled: true
login-username: admin
login-password: admin
#配置WebStatFilter
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
|
至此,基本的环境就搭建完成啦,接下来就是代码的编写了。
按照下图先把文件创建好

然后编写 User
,
1
2
3
4
| data class User(var id: Long,
var name: String,
var age: Int,
var gender: Int)
|
接着编写 UserMapper
,记得一定要加 Mapper注解
,这样 Spring Boot 才能扫描到这个 Mapper。
1
2
3
4
5
6
| @Mapper
interface UserMapper {
@Select("select * from user")
fun getAllUsers(): MutableList<User>
}
|
最后编写测试用的 UserController
。
1
2
3
4
5
6
7
8
9
10
11
| @RestController
class UserController {
@Resource
lateinit var userMapper: UserMapper
@GetMapping("getAllUser")
fun getAllUsers(): MutableList<User> {
return userMapper.getAllUsers()
}
}
|
运行程序,访问 http://localhost:8000/getAllUser ,可以看到已经能成功访问到 mysql 里面的数据了,同时也可以打开 http://localhost:8000/druid 查看 Druid 的监控页面。

这样,一个简单的整合了 mybatis
的 Spring Boot 框架就搭建完毕了。
评论正在加载中...如果评论较长时间无法加载,你可以 搜索对应的 issue 或者 新建一个 issue 。