Overview
Nowadays, most of the Internet applications still use Mybatis to operate databases. This article introduces how to integrate Mybatis in Spring Boot.
The previous article introduces the method of directly running projects in Spring Boot with jar. If you need it, click to view it.
Create Spring Boot Project
In the Spring Boot opening - Create and Run article, there is a section that describes how to use Spring Boot components to create projects. If you want to integrate Mybatis, you only need to check the two components Mysql and Mybatis.
Of course, you can also add dependencies directly in the POM.xml file without this method. I chose to add dependencies directly in the POM.xml file.
dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version></dependency><dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version></dependency><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.7</version></dependency>
The data source uses Alibaba's druid. The complete POM.xml file content is as follows:
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.springboot</groupId> <artifactId>study</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>study</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.10.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>1.3.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.7</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.45</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
Create a table
CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT NULL DEFAULT '', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='user information';
Create an entity
package com.springboot.entity;public class User { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "User{" + "id=" + id + ", name='" + name + '/'' + '}'; }}Create Mybatis mapping files and repo
UserRepo.java
package com.springboot.repo;import com.springboot.entity.User;import org.apache.ibatis.annotations.Mapper;import org.springframework.stereotype.Component;import java.util.List;@Component@Mapperpublic interface UserRepo { int insert(User user); User selectByPrimaryKey(Long id); int updateByPrimaryKey(User user); int deleteByPrimaryKey(Long id); List<User> selectAll();}UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.springboot.repo.UserRepo" > <resultMap id="BaseResultMap" type="com.springboot.entity.User" > <id column="id" property="id" jdbcType="BIGINT" /> <result column="name" property="name" jdbcType="VARCHAR" /> </resultMap> <sql id="Base_Column_List" > id, name </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long" > select <include refid="Base_Column_List" /> from user where id = #{id,jdbcType=BIGINT} </select> <select id="selectAll" resultMap="BaseResultMap"> select <include refid="Base_Column_List" /> from user </select> <update id="updateByPrimaryKey" parameterType="com.springboot.entity.User" > update user <set> <if test="name != null" > `name`= #{name,jdbcType=VARCHAR}, </if> </set> where id = #{id,jdbcType=BIGINT} </update> <delete id="deleteByPrimaryKey" parameterType="java.lang.Long" > delete from user where id = #{id,jdbcType=BIGINT} </delete> <insert id="insert" parameterType="com.springboot.entity.User" useGeneratedKeys="true" keyProperty="id"> insert into user <trim prefix="(" suffix=")" suffixOverrides="," > name </trim> <trim prefix="values (" suffix=")" suffixOverrides="," > #{name,jdbcType=VARCHAR} </trim> </insert></mapper>Write application.properties
Add the following to the application.properties file generated by Spring Boot for us:
spring.datasource.name=spring_boot_study spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=xxxxxx spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.type=com.alibaba.druid.pool.DruidDataSource mybatis.mapper-locations=classpath:mapper/*.xml mybatis.type-aliases-package=com.springboot.entity
Unit Testing
package com.springboot;import com.springboot.entity.User;import com.springboot.repo.UserRepo;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import org.springframework.test.context.junit4.SpringRunner;import java.util.List;@RunWith(SpringRunner.class)@SpringBootTestpublic class UserTest { @Autowired private UserRepo userRepo; @Test public void testInsert() { User user = new User(); user.setName("test2"); userRepo.insert(user); } @Test public void testUpdate() { User user = new User(); user.setId(6L); user.setName("test3"); userRepo.updateByPrimaryKey(user); } @Test public void testDelete() { userRepo.deleteByPrimaryKey(6L); } @Test public void testSelectByPrimaryKey() { User user = userRepo.selectByPrimaryKey(7L); System.out.println(user); } @Test public void testSelectAll() { List<User> userList = userRepo.selectAll(); System.out.println(userList); }}Summarize
The above is the example code (simplified version) of Spring Boot integration Mybatis introduced to you. I hope it will be helpful to you. If you have any questions, please leave me a message and the editor will reply to you in time. Thank you very much for your support to Wulin.com website!