当前位置: 移动技术网 > IT编程>开发语言>Java > springboot与mybatis整合实例详解

springboot与mybatis整合实例详解

2019年07月19日  | 移动技术网IT编程  | 我要评论

最近项目原因可能会继续开始使用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

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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网