您的位置:首页 > 编程语言 > Java开发

springboot整合mybatis

2017-09-12 22:32 405 查看
最近项目要求开发一个小功能,提供一个简单的http接口,返回其他项目所需的数据。因为功能比较简单,且懒得去配置一大堆文件,所以就直接使用springboot。看到网上在整合mybatis的时候众说纷纭,但是似乎没一个准的,摸爬滚打整合成功之后,写下留着备忘。

1.数据库

因为是简单的做个demo,所以这里使用到的数据库非常简单,test库里一个student表。

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
`id` int(10) NOT NULL,
`name` varchar(20) NOT NULL,
`sex` varchar(4) DEFAULT NULL,
`birth` year(4) DEFAULT NULL,
`department` varchar(20) DEFAULT NULL,
`address` varchar(50) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `id` (`id`,`birth`) USING BTREE,
KEY `bir` (`birth`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO `student` VALUES ('902', '张老二', '男', '1986', '中文系', '北京市昌平区');
INSERT INTO `student` VALUES ('903', '张三', '女', '1990', '中文系', '湖南省永州市');
INSERT INTO `student` VALUES ('904', '李四', '男', '1990', '英语系', '辽宁省阜新市');
INSERT INTO `student` VALUES ('905', '王五', '女', '1991', '英语系', '福建省厦门市');
INSERT INTO `student` VALUES ('906', '王六', '男', '1988', '计算机系', '湖南省衡阳市');2.pom文件

demo使用maven管理构建,所以在pom中加入相应的依赖
<?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.wiggin</groupId>
<artifactId>springboot-demo</artifactId>
<version>1.0-SNAPSHOT</version>

<build>
<finalName>springboot-demo</finalName>
<!-- 因为mybatis相关的xml都是存放在包里,所以打包的时候要将这些xml加到classpath里-->
<resources>
<resource>
<targetPath>${project.build.directory}/classes</targetPath>
<directory>src/main/java</directory>
<filtering>true</filtering>
<includes>
<include>**/mapping/*.xml</include>
</includes>
</resource>
</resources>
<plugins>
<!-- 使用springboot的maven 打包方式-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.6.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.37</version>
</dependency>
<!-- Mysql Driver End -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.25</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.2</version>
</dependency>
<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>1.3.0</version>
</dependency>

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.16</version>
</dependency>

</dependencies>
</project>

3.配置
通过application.yml进行配置,主要留意mybatis的配置

#spring 相关配置
spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?characterEncoding=UTF-8&autoReconnect=true
username: root
password: '123123'
#阿里druid连接池
type: com.alibaba.druid.pool.DruidDataSource
maxActive: 10
initialSize: 1
maxWait: 60000
minIdle: 1
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: select 'x'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxOpenPreparedStatements: 20

# mybatis 相关配置
mybatis:
mapperLocations: classpath*:com/wiggin/springboot/demo/mapping/*.xml
typeAliasesPackage: com.wiggin.springboot.demo.model

# log 配置
logging:
level: debug
file: /home/wiggin/springboot-demo/log/blog.log
pattern:
file: '%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n'
console: '%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n'
server:
address: localhost
port: 8080

4.进行开发
mvc层的开发跟传统的spring整合mybatis是一样的,这里不多说,唯一的不同就是需要加一个springboot的启动类,在里面要扫描组件、mybatis的mapper

package com.wiggin.springboot.demo.main;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;

/**
* copyright 2015-2020
*
* @author wiggin
* @date 2017/9/26 22:40
* @Description: 启动类
*/
@SpringBootApplication
@MapperScan(basePackages = "com.wiggin.springboot.demo.dao")
@ComponentScan("com.wiggin.springboot.demo.*")
public class Main {
public static void main(String[] args) {
SpringApplication.run(Main.class);
}
}


5.demo地址
https://github.com/zhangweijian/springboot-demo
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring springboot mybatis