文档章节

Spring-Boot整合mybatis(一),使用默认的数据库连接池

贺小五
 贺小五
发布于 2017/03/18 18:18
字数 796
阅读 1775
收藏 8

最近工作比较忙,很久没写博客了,抱歉,以前springboot项目使用的是JPA标准,使用hibernate来实现的,最新心血来潮,试试springboot整合mybatis试试,于是找了官方文档来进行配置下,下面就是正文了

 

先介绍一下开发环境:

  1. jdk版本是1.8
  2. springboot的版本是1.4.1
  3. 开发工具为 intellij idea

 

首先我们先引入mybatis的依赖,在项目的pom文件中添加以下内容:

<dependency>
   <groupId>org.mybatis.spring.boot</groupId>
   <artifactId>mybatis-spring-boot-starter</artifactId>
   <version>1.1.1</version>
</dependency>

 

------------------------------------分割线-------------------------------------

引入依赖后,在数据库执行以下SQL

create table city (id int primary key auto_increment, name varchar(32), state varchar(32), country varchar(32));
insert into city (name, state, country) values ('BeiJing', 'OFF', 'CN');  

上面是创建表跟插入一条数据,方便我们测试是否执行

 

然后我们创建一个mapper

 

 

//mapper注解
@Mapper
public interface CityMapper {
 
    //SQL注解
    @Select("SELECT * FROM CITY WHERE state = #{state}")
    City findByState(@Param("state") String state);

}

 

PS注解描述:

    @Mapper 表示这是个mapper,类似以前在xml配置的mapper,只不过这里使用注解不使用xml而已,如果不是在默认路径下,还需要配合@MapperScan注解使用,否则会扫描不到@Mapper注解的路径

    @Select SQL注解,里面内容是需要执行的SQL,类似注解还有@Update等

    @Param 参数注解,用于SQL参数注入使用

 

 

创建好mapper后,我们需要创建一个映射实体类,用于对象跟表之间的映射,我们只需要创建一个普通的java对象就好了

public class City {

	private Long id;

	private String name;

	private String state;

	private String country;

    .... getterAndsetter

}

 

 

------------------------------------分割线-------------------------------------

mapper跟model我们都写好了,下面我们配置一下数据库连接等配置,这次我们使用 properties进行配置,以下下是配置内容(这些内容,大家肯定都知道了,就不在写注释了),默认使用的数据库连接池是:

org.apache.tomcat.jdbc.pool.DataSource

 

spring.datasource.url = jdbc:mysql://localhost:3306/springboot
spring.datasource.username = root
spring.datasource.password = 123456
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
//如果想替换其他的数据库连接池,增加下面配置就可以了
#spring.datasource.type= 数据库连接池的包路径

 

 

 

因为我的mapper没有在默认的包下,而是在其他的包下,所以,我这还需要在Applicaction的启动类上加上@MapperScan注解,代码如下:

 

@SpringBootApplication
@MapperScan(basePackages = "com.demo.mybatisDemo")
public class DemoApplication{

	public static void main(String[] args) {
		SpringApplication.run(DemoApplication.class, args);
	}
}

 

以上基本是所有配置了,下面我们写个单元测试来进行测试下吧:

 

测试代码如下:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MybatisTest {

	@Autowired
	private CityMapper cityMapper;

	private Gson gson = new Gson();

	@Test
	public void mybatisMethod(){
		City cn = cityMapper.findByState("CA");

		System.out.println(gson.toJson(cn));
	}

}

 

 

然后你会发现执行成功了,表示配置成功了,这是简单的集成mybatis例子,各位可以参考这个自己进行配置

 

以下是官方的例子,如果有兴趣的同学,可以通过连接自己查看一下

PS:http://www.mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/

 

到这,文章就结束了!

以上,均为本人测试而得出的结果,可能会有出入,或者错误,欢迎指正

欢迎转载,请注明出处跟作者,谢谢!

 

© 著作权归作者所有

贺小五

贺小五

粉丝 72
博文 47
码字总数 48425
作品 0
海淀
程序员
私信 提问
加载中

评论(9)

睡神已成神
睡神已成神

引用来自“贺小五”的评论

引用来自“Pasenger”的评论

很简单,很容易理解,谢谢分享

不客气,能帮到您就好
我的天,你还这么有礼貌?
贺小五
贺小五 博主

引用来自“Pasenger”的评论

很简单,很容易理解,谢谢分享

不客气,能帮到您就好
Pasenger
Pasenger
很简单,很容易理解,谢谢分享
贺小五
贺小五 博主

引用来自“alan-”的评论

引用来自“贺小五”的评论

引用来自“alan-”的评论

引用来自“贺小五”的评论

引用来自“alan-”的评论

问个事,@select这种怎么返回自增主键
@select 本身就是查询,你要返回,可以增加返回,你问的应该不是@select吧

问错了,@insert这个怎么返回自增主键
不好意思,回复慢了,最近有点忙, 增加这个 @Options(useGeneratedKeys= true, keyProperty="id") 注解

忙碌五,厉害了
噗,,,你是群里的...握草..
alan-
alan-

引用来自“贺小五”的评论

引用来自“alan-”的评论

引用来自“贺小五”的评论

引用来自“alan-”的评论

问个事,@select这种怎么返回自增主键
@select 本身就是查询,你要返回,可以增加返回,你问的应该不是@select吧

问错了,@insert这个怎么返回自增主键
不好意思,回复慢了,最近有点忙, 增加这个 @Options(useGeneratedKeys= true, keyProperty="id") 注解

忙碌五,厉害了
贺小五
贺小五 博主

引用来自“alan-”的评论

引用来自“贺小五”的评论

引用来自“alan-”的评论

问个事,@select这种怎么返回自增主键
@select 本身就是查询,你要返回,可以增加返回,你问的应该不是@select吧

问错了,@insert这个怎么返回自增主键
不好意思,回复慢了,最近有点忙, 增加这个 @Options(useGeneratedKeys= true, keyProperty="id") 注解
alan-
alan-

引用来自“贺小五”的评论

引用来自“alan-”的评论

问个事,@select这种怎么返回自增主键
@select 本身就是查询,你要返回,可以增加返回,你问的应该不是@select吧

问错了,@insert这个怎么返回自增主键
贺小五
贺小五 博主

引用来自“alan-”的评论

问个事,@select这种怎么返回自增主键
@select 本身就是查询,你要返回,可以增加返回,你问的应该不是@select吧
alan-
alan-
问个事,@select这种怎么返回自增主键
SpringBoot整合Mybatis+Druid

1.SpringBoot 作为一款约定大于配置的微服务框架,得到了业界的大量推广和应用。对SpringBoot的学习使用可以有效的帮助开发简化开发流程,配置过程,部署过程。 2.数据库的交互是开发过程中很...

扁桃体准备发言了
2018/08/16
0
0
Spring Boot 整合 MyBatis

最近项目原因可能会继续开始使用MyBatis,已经习惯于spring-data的风格,再回头看xml的映射配置总觉得不是特别舒服,接口定义与映射离散在不同文件中,使得阅读起来并不是特别方便。 Spring...

中关村的老男孩
06/24
90
0
苞米豆多数据源启动器 2.0.1 发布,Bug 修复版本

苞米豆多数据源启动器 2.0.1 发布了。强烈建议升级!更新内容: 修复一个方法缓存的bug,会引起同名方法的注解失效。 底层代码的重命名和部分格式的调整。 源码地址: https://gitee.com/ba...

小锅盖
2018/08/09
744
4
spring boot 1.5.4 整合 druid(十三)

上一篇:spring boot 1.5.4 整合 mybatis(十二) 1 集成druid连接池 spring boot集成druid项目mybatis-spring-boot源码: spring-boot相关项目源码, 码云地址:https://git.oschina.net/w...

wyait
2017/09/29
0
0
SpringBoot与Mybatis整合的多模块项目

springBoot项目构建 Spring多模块项目的构建 1.使用Idea构建一个Springboot项目 File-->new-->project-->springInitializr-->(NEXT) 2.主项目pom中添加依赖 ~ org.springframework.bootspri......

JavionXiong
2018/06/22
834
0

没有更多内容

加载失败,请刷新页面

加载更多

高速PCB设计软件allegro中与网络有关的约束规则设置

在allegro pcb的设计过程中,设计约束规则包括时序规则、间距规则、信号完整性规则以及物理规则等,本期主要详细讲解与物理、间距与电气约束中的线宽、线间距物理规则的设置。 一、线宽设置 ...

demyar
12分钟前
1
0
Linux 启动停止SpringBoot jar 程序部署Shell 脚本

#!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=algorithm.jar #使用说明,用来提示输入参数 usage() { echo "Usage: sh 执行脚本.sh [start|stop|restart|status]...

草庐过客
14分钟前
2
0
mysql-connector-java驱动升级到8.0后数据库保存时间出现时差

1.问题:在一个新项目中用到了新版的mysql jdbc 驱动后,发现保存到数据库的时间出现了时差 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId>......

ValSong
15分钟前
2
0
好程序员大数据教程Scala系列之隐式转换和隐式参数

5.1. 概念 隐式转换和隐式参数是Scala中两个非常强大的功能,利用隐式转换和隐式参数,你可以提供优雅的类库,对类库的使用者隐匿掉那些枯燥乏味的细节。 5.2. 作用 隐式的对类的方法进行增强...

好程序员官网
19分钟前
2
0
多线程必备

初次接触线程,可能有很多初学者搞不明白,始终云里雾里,那么本篇文章直接带大家介绍多线程必须知道的几个点 接下来没有多余,直接上干货 1. 进程和线程的区别是什么? 进程是执行着的应用程序,...

理性思考
22分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部