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中加入相应的依赖
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
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
相关文章推荐
- java鬼混笔记:springboot 7、springboot整合mybatis后再加上druid数据库连接池
- springboot整合Mybatis
- Spring boot Mybatis 整合(完整版)
- springboot整合Mybatis(一)——入门
- SpringBoot整合MyBatis
- SpringBoot整合Mybatis之进门篇
- SpringBoot系列七:SpringBoot 整合 MyBatis(配置 druid 数据源、配置 MyBatis、事务控制、druid 监控)
- springBoot整合mybatis
- springboot与mybatis整合dao层不能注入的问题
- Spring Boot整合MyBatis
- SpringBoot整合MyBatis逆向工程及 MyBatis通用Mapper实例详解
- SpringBoot整合MyBatis
- Spring boot整合mybatis
- SpringBoot整合MyBatis及Thymeleaf
- springboot整合mybatis一个简单的demo
- Springboot 整合 Mybatis 的完整 Web 案例
- spring boot +springMVC +mybatis整合踩过的坑
- spring boot 整合 mybatis
- springboot整合mybatis中的坑
- Spring Boot 整合 Mybatis 实现 Druid 多数据源