博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
12.SpringBoot+MyBatis(XML)+Druid
阅读量:6833 次
发布时间:2019-06-26

本文共 3861 字,大约阅读时间需要 12 分钟。

转自:https://www.cnblogs.com/MaxElephant/p/8108342.html

主要是在Spring Boot中集成MyBatis,可以选用基于注解的方式,也可以选择xml文件配置的方式。官方推荐使用xml文件配置。

springboot+mybatis+druid

1. 引入依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- Mybatis -->
<dependency>
    
<groupid>org.mybatis.spring.boot</groupid>
    
mybatis-spring-boot-starter</artifactid>
    
<version>
1.1
.
1
</version>
    
<!-- 请不要使用
1.0
.
0
版本,因为还不支持拦截器插件 -->
</dependency>
<!-- druid阿里巴巴数据库连接池 -->
<dependency>
    
<groupid>com.alibaba</groupid>
    
druid</artifactid>
    
<version>
1.0
.
20
</version>
</dependency>
<!-- MySql数据库驱动 -->
<dependency>
    
<groupid> mysql</groupid>
     
mysql-connector-java</artifactid>
    
<version>
5.0
.
5
</version>
</dependency>

2. 在Mysql中创建Users表

Users表中包含id(BIGINT)、name(INT)、age(VARCHAR)字段。

3. 创建接口Mapper(不是类)和对应的XML文件

User实体类:

1
2
3
4
5
6
7
8
public
class
User {
 
    
private
long
id;
    
private
String name;
    
private
Integer age;
 
    
// 省略相应的 getter 与 setter 方法
}

UserDao接口:实现插入和查询操作

注意必须加上@Mapper的注解,不然@Autowired将注入失败。

1
2
3
4
5
6
7
<code><code>
@Mapper
public
interface
UserDao{
 
    
int
insertUser(
@Param
(
"user"
) User user);
 
    
User findByName(String name);
}</code></code>

@Mapper注解标记这个接口作为一个映射接口。真正实现映射的方法(XML文件)需要源对象作为参数,并返回目标对象。

UserMapper.xml文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<code><code><code><!--?xml version=
"1.0"
encoding=
"UTF-8"
?-->
 
<mapper namespace=
"qg.fangrui.boot.dao.UserDao"
>
    
<!--目的:为Dao接口方法提供SQL语句-->
 
    
<!--映射实体对象-->
    
<resultmap id=
"UserResultMap"
type=
"qg.fangrui.boot.model.User"
>
        
<id column=
"id"
property=
"id"
>
        
<result column=
"name"
property=
"name"
>
        
<result column=
"age"
property=
"age"
>
    
</result></result></id></resultmap>
 
    
<insert id=
"insertUser"
>
        
INSERT INTO users(name, age)
        
VALUES (#{user.name}, #{user.age})
    
</insert>
 
    
<select id=
"findByName"
resulttype=
"User"
>
        
SELECT * FROM users WHERE name = #{name}
    
</select>
 
</mapper></code></code></code>

4. 配置文件

application.properties:

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
<code><code><code># 驱动配置信息
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url = jdbc:mysql:
//127.0.0.1:3306/myboot?useUnicode=true&characterEncoding=utf-8
spring.datasource.username = root
spring.datasource.password =
123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
 
#连接池的配置信息
spring.datasource.initialSize=
5
spring.datasource.minIdle=
5
spring.datasource.maxActive=
20
spring.datasource.maxWait=
60000
spring.datasource.timeBetweenEvictionRunsMillis=
60000
spring.datasource.minEvictableIdleTimeMillis=
300000
spring.datasource.validationQuery=SELECT
1
FROM DUAL
spring.datasource.testWhileIdle=
true
spring.datasource.testOnBorrow=
false
spring.datasource.testOnReturn=
false
spring.datasource.poolPreparedStatements=
true
spring.datasource.maxPoolPreparedStatementPerConnectionSize=
20
spring.datasource.filters=stat,wall,log4j
spring.datasource.connectionProperties=druid.stat.mergeSql=
true
;druid.stat.slowSqlMillis=
5000
 
# MyBatis 配置
mybatis.mapper-locations=classpath:mapper/*.xml
mybatis.type-aliases-
package
=qg.fangrui.boot.model</code></code></code>

5. 调用测试:

一般情况下,我是用Controller层调用Service层,Service层调用Dao层。测试案例比较简单,我就不列了,只是简单展示一下相应的Controller。

1
2
3
4
5
6
7
8
9
10
11
12
13
<code><code><code>
@RestController
@RequestMapping
(
"/test"
)
public
class
TestController {
 
    
@Autowired
    
private
UserService userService;
 
    
@RequestMapping
(
"/add"
)
    
public
String add(User user){
        
return
String.valueOf(userService.add(user));
    
}
 
}</code></code></code>

效果图:

Postman测试图:
Postman测试图
Druid监控图:
Druid监控图

附录

补充

mybatis-spring-boot-starter的依赖树:

依赖树

Mybatis 在 SpringBoot 中的配置:

* mybatis.mapper-locations:xml文件扫描位置
* mybatis.type-aliases-package:Model包扫描位置
* mybatis.config:mybatis-config.xml配置文件的路径
* mybatis.typeHandlersPackage:扫描typeHandlers的包
* mybatis.checkConfigLocation:检查配置文件是否存在
* mybatis.executorType:设置执行模式(SIMPLE, REUSE, BATCH),默认为SIMPLE

转载于:https://www.cnblogs.com/sharpest/p/7954237.html

你可能感兴趣的文章
使用WireShark嗅探网站登陆密码
查看>>
设计讨论:好设计长什么样?
查看>>
consul-nomad的WEB UI
查看>>
JSP等网站【创建带自定义图标的桌面快捷方式】
查看>>
MySQL之数据库对象查看工具mysqlshow
查看>>
EntLib.com 电子商务系统 v2.5 – 前台购物网站/网店发布-- 源码包
查看>>
40款用于简洁网页设计的光滑英文字体【上】
查看>>
Discuz最新patch
查看>>
Mysql master slave Failed to open the relay log
查看>>
华商网:一定是哪里出了问题!
查看>>
搭建kafka运行环境
查看>>
Linux上查看造成IO高负载的进程
查看>>
DOS命令大全
查看>>
zabbix配置及邮件短信报警
查看>>
中国开发者也可以发布WP7应用
查看>>
基于linux6.x安装xgboost
查看>>
Centos7使用mailx发送邮件
查看>>
我为什么不用 Linux 作为我的桌面系统
查看>>
Linux系统结构目录、ls命令、文件类型、alias命令笔记
查看>>
20种新颖的按钮风格和效果【附源码下载】
查看>>