SpringCloud SpringBoot mybatis 分布式微服务(十四)Spring Boot整合MyBatis

标签: springcloud springboot springmvc mybatis java
175人阅读 评论(2) 收藏 举报

Spring中整合MyBatis就不多说了,最近大量使用Spring Boot,因此整理一下Spring Boot中整合MyBatis的步骤。搜了一下Spring Boot整合MyBatis的文章,方法都比较老,比较繁琐。查了一下文档,实际已经支持较为简单的整合与使用。下面就来详细介绍如何在Spring Boot中整合MyBatis,并通过注解方式实现映射。

整合MyBatis

  • 新建Spring Boot项目,或以Chapter1为基础来操作

  • pom.xml中引入依赖

  • 这里用到spring-boot-starter基础和spring-boot-starter-test用来做单元测试验证数据访问

  • 引入连接mysql的必要依赖mysql-connector-java

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>1.3.2.RELEASE</version>
	<relativePath/> <!-- lookup parent from repository -->
</parent>

<dependencies>

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter</artifactId>
	</dependency>

	<dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-test</artifactId>
		<scope>test</scope>
	</dependency>

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

	<dependency>
		<groupId>mysql</groupId>
		<artifactId>mysql-connector-java</artifactId>
		<version>5.1.21</version>
	</dependency>

</dependencies>

同之前介绍的使用jdbc和spring-data连接数据库一样,在application.properties中配置mysql的连接配置

spring.datasource.url=jdbc:mysql://localhost:3306/test
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  • 同其他Spring Boot工程一样,简单且简洁的的完成了基本配置,下面看看如何在这个基础下轻松方便的使用MyBatis访问数据库。

    使用MyBatis

  • 在Mysql中创建User表,包含id(BIGINT)、name(INT)、age(VARCHAR)字段。同时,创建映射对象User
public class User {

    private Long id;
    private String name;
    private Integer age;

    // 省略getter和setter

}
创建User映射的操作UserMapper,为了后续单元测试验证,实现插入和查询操作
@Mapper
public interface UserMapper {

    @Select("SELECT * FROM USER WHERE NAME = #{name}")
    User findByName(@Param("name") String name);

    @Insert("INSERT INTO USER(NAME, AGE) VALUES(#{name}, #{age})")
    int insert(@Param("name") String name, @Param("age") Integer age);

}
创建Spring Boot主类
@SpringBootApplication
public class Application {

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

}
  • 创建单元测试

  • 测试逻辑:插入一条name=AAA,age=20的记录,然后根据name=AAA查询,并判断age是否为20
  • 测试结束回滚数据,保证测试单元每次运行的数据环境独立
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class ApplicationTests {

	@Autowired
	private UserMapper userMapper;

	@Test
	@Rollback
	public void findByName() throws Exception {
		userMapper.insert("AAA", 20);
		User u = userMapper.findByName("AAA");
		Assert.assertEquals(20, u.getAge().intValue());
	}

}
源码来源






查看评论

springboot整合mybatis方式一

基于注解式整合spring boot 和mybatis
  • Class_SpringCloud
  • Class_SpringCloud
  • 2017-04-26 17:54:42
  • 6025

springboot微服务搭建(一):整合mybatis配置(第一种方式)

研究一下在写。
  • sinat_32519815
  • sinat_32519815
  • 2017-11-10 15:54:23
  • 251

spring cloud + spring boot + springmvc+mybatis分布式微服务云架构

spring cloud + spring boot + springmvc+mybatis做一个微服务架构需要的技术整理..
  • qq_40354025
  • qq_40354025
  • 2017-10-19 08:58:42
  • 1124

Spring Boot 整合 MyBatis

前言 下面就讲解下 Springboot 如何整合 MyBatis,这里使用的是xml配置SQL而不是用注解。主要是 SQL 和业务代码应该隔离,方便和 DBA 校对 SQL。 项目源代码...
  • guoxiaodong2339
  • guoxiaodong2339
  • 2017-05-23 09:32:14
  • 2304

Spring Cloud (15) | Spring Boot、HikariCP、Mybatis和MySQL 配置HikariCP数据库连接池

HiKariCP数据库连接池号称目前是最快的, HikariCP VS druid VS c3p0 VS dbcp VS jdbc 数据库连接池性能比对 性能方面 hikariCP>druid>tom...
  • superdangbo
  • superdangbo
  • 2017-12-07 10:37:36
  • 1076

Spring Cloud之路:(五)Spring Boot + Mybatis小试

一、Mybatis 1、介绍   MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果...
  • sage_wang
  • sage_wang
  • 2018-02-06 13:48:45
  • 163

使用springboot+springmvc+mybaits-spring+mybatis-generator开发

使用springboot+springmvc+mybatis-generator开发web程序,也算是自己参考网上的知识自己写出来的吧,里面还很多东西值得深究学习 使用IDEA和MAVEN新建spri...
  • yezhuanxu
  • yezhuanxu
  • 2016-12-06 09:45:37
  • 14824

SpringCloud SpringBoot mybatis 分布式微服务(十九)springboot在启动时注入了哪些bean

在程序入口加入:@SpringBootApplication public class SpringbootFirstApplication { public static void mai...
  • AD11135
  • AD11135
  • 2018-02-26 10:18:18
  • 63

springCloud+springBoot教学视频 可以搭建一个微服务

  • 2017年08月07日 22:10
  • 48B
  • 下载

spring boot 学习(五)SpringBoot+MyBatis(XML)+Druid

springboot集成了springJDBC与JPA,但是没有集成mybatis,所以想要使用mybatis就要自己去集成。 主要是在Spring Boot中集成MyBatis,可以选用基于注解的...
  • u011244202
  • u011244202
  • 2017-01-24 17:07:20
  • 6988
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 1028
    排名: 4万+
    文章分类
    文章存档
    最新评论