一、SpringBoot整合mybatis、druid、单元测试
1.1 导入SQL
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `book`;
CREATE TABLE `book` (
`isbn` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
`book_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
`price` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`isbn`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
INSERT INTO `book` VALUES ('ISBN-001', 'book01', 100);
INSERT INTO `book` VALUES ('ISBN-002', 'book02', 200);
INSERT INTO `book` VALUES ('ISBN-003', 'book03', 300);
INSERT INTO `book` VALUES ('ISBN-004', 'book04', 400);
INSERT INTO `book` VALUES ('ISBN-005', 'book05', 500);
SET FOREIGN_KEY_CHECKS = 1;
1.2 依赖导入
<properties>
<springboot.version>2.1.9.RELEASE</springboot.version>
<mybatis.starter.version>2.1.2</mybatis.starter.version>
<druid.version>1.2.2</druid.version>
<lombok.version>1.18.12</lombok.version>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.starter.version}</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1.3 编写启动类(注意添加mapper的扫描注解)
package com.learning.springboot;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@MapperScan(basePackages = "com.learning.springboot.mapper")
@SpringBootApplication
public class StartApplication {
public static void main(String[] args) {
SpringApplication.run(StartApplication.class,args);
}
}
1.4 编写配置文件
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://192.168.66.61:3306/db2021?useUnicode=true&characterEncoding-utr-8&useSSL=false
username: root
password: 1qaz@WSX
mybatis:
type-aliases-package: com.learning.springboot.pojo
mapper-locations: mapper/*.xml
configuration:
map-underscore-to-camel-case: true
logging:
level:
com.learning.springboot.mapper: debug
1.5 编写mapper/BookMapper.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.learning.springboot.mapper.BookMapper">
<select id="findBookList" resultType="book">
select * from book
</select>
</mapper>
1.6 pojo层
package com.learning.springboot.pojo;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
public class Book {
private String isbn;
private String bookName;
private Double price;
}
1.7 mapper层
package com.learning.springboot.mapper;
import com.learning.springboot.pojo.Book;
import java.util.List;
public interface BookMapper {
List<Book> findBookList();
}
1.8 service层
package com.learning.springboot.service;
import com.learning.springboot.pojo.Book;
import java.util.List;
public interface BookService {
List<Book> getListBook();
}
@Service
public class BookServiceImpl implements BookService {
@Autowired
private BookMapper bookMapper;
@Override
public List<Book> getListBook() {
return bookMapper.findBookList();
}
}
1.9 单元测试
@SpringBootTest(classes = StartApplication.class)
@RunWith(SpringRunner.class)
public class MybatisTest {
@Autowired
private BookService bookService;
@Test
public void findBookListTest(){
List<Book> listBook = bookService.getListBook();
listBook.forEach(System.out::println);
}
}