欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot与mybatis整合实例详解

程序员文章站 2024-04-01 21:10:46
最近项目原因可能会继续开始使用mybatis,已经习惯于spring-data的风格,再回头看xml的映射配置总觉得不是特别舒服,接口定义与映射离散在不同文件中,使得阅读起...

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

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
  • 引入整合mybatis的核心依赖mybatis-spring-boot-starter
  • 这里不引入spring-boot-starter-jdbc依赖,是由于mybatis-spring-boot-starter中已经包含了此依赖
<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());
 }
}

完整示例chapter3-2-7

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。