概述
springboot+druid整合mybatis
- 创建Maven web app工程
- 完善工程结构
- 导入相关依赖
<?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.tedu.cn</groupId>
<artifactId>spring_mybatis</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<name>spring_mybatis Maven Webapp</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-parent</artifactId>
<version>2.1.3.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--引入springboot web开发模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--添加springboot thymeleaf模块-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--引入springboot对jdbc的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<!--引入mybatis-springboot整合模块-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 引入mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<!--引入阿里巴巴druid连接池-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>0.2.9</version>
</dependency>
<!-- 分页插件pagehelper -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-autoconfigure</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
<build>
<finalName>spring_mybatis</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
- resources下创建相关配置文件如下:
application.properties配置文件如下:
###配置tomcat服务器启动端口
server.port=80
###配置thymeleaf
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.servlet.content-type=text/html
spring.thymeleaf.cache=false
###配置mysq驱动信息
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/cloud_note?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root
druid.properties配置文件如下:
###配置druid数据库连接池信息
springboot.druid.filters=stat
springboot.druid.initialSize=2
springboot.druid.maxActive=300
springboot.druid.maxWait=60000
springboot.druid.timeBetweenEvictionRunsMillis=60000
springboot.druid.minEvictableIdleTimeMillis=300000
springboot.druid.maxPoolPreparedStatementPerConnectionSize=200
# 设置,mapper 接口路径,mapper 接口对应的 xml 配置文件
mapper.package.path=com.tedu.cn.mapper
mapper.xml.config.path=/mapperConfig/*.xml
- 创建com.tedu.cn.configbean包同时在此包下创建两个类DataSourceBean,SqlSessionBean,代码如下:
package com.tedu.cn.configbean;
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
import java.sql.SQLException;
/**
* @phone:13595672347
* @qq:1441826270
* @作者:雷玉荣
* @date 2019/5/13 22:54
*/
@SpringBootConfiguration
@PropertySource(value = "classpath:/dataSourceConfiger/Durid.properties")
@EnableTransactionManagement
public class DataSourceBean {
/**
* 数据库用户名
*/
@Value("${spring.datasource.username}")
private String username;
/**
* 数据库密码
*/
@Value("${spring.datasource.password}")
private String password;
/**
* 连接数据库使用url
*/
@Value("${spring.datasource.url}")
private String url;
/**
* 数据库驱动名称
*/
@Value("${spring.datasource.driver-class-name}")
private String driverName;
@Value("${springboot.druid.initialSize}")
private int initialSize;
@Value("${springboot.druid.filters}")
private String filters;
@Value("${springboot.druid.maxActive}")
private int maxActive;
@Value("${springboot.druid.maxWait}")
private long maxWait;
@Value("${springboot.druid.timeBetweenEvictionRunsMillis}")
private long timeBetweenEvictionRunsMillis;
@Value("${springboot.druid.minEvictableIdleTimeMillis}")
private long minEvictableIdleTimeMillis;
@Value("${springboot.druid.maxPoolPreparedStatementPerConnectionSize}")
private int maxPoolPreparedStatementPerConnectionSize;
@Bean(name = "dataSource")
public DataSource dataSource(){
DruidDataSource dataSource= null;
try {
dataSource = new DruidDataSource();
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setUrl(url);
dataSource.setDriverClassName(driverName);
dataSource.setInitialSize(initialSize);
dataSource.setFilters(filters);
dataSource.setMaxActive(maxActive);
dataSource.setMaxWait(maxWait);
dataSource.setTimeBetweenConnectErrorMillis(timeBetweenEvictionRunsMillis);
dataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
dataSource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
} catch (SQLException e) {
e.printStackTrace();
}
return dataSource;
}
}
Sqlsessionbean代码如下:
package com.tedu.cn.configbean;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.io.IOException;
/**
- @phone:13595672347
- @qq:1441826270
- @作者:雷玉荣
- @date 2019/5/13 23:15
*/
@SpringBootConfiguration
@PropertySource(“classpath:/dataSourceConfiger/Durid.properties”)
public class SqlSessionBean {
@Value(" m a p p e r . p a c k a g e . p a t h " ) p r i v a t e S t r i n g b a s e P a c k a g e ; @ V a l u e ( " {mapper.package.path}") private String basePackage; @Value(" mapper.package.path")privateStringbasePackage;@Value("{mapper.xml.config.path}")
private String xmlPath;
@Resource
private DataSource dataSource;
@Bean(name = “sqlSessionFactoryBean”)
public SqlSessionFactoryBean getBean(){
SqlSessionFactoryBean bean=null;
try {
bean=new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
PathMatchingResourcePatternResolver pathMatchingResourcePatternResolver=
new PathMatchingResourcePatternResolver();
String mapperPath=PathMatchingResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX+xmlPath;
bean.setMapperLocations(pathMatchingResourcePatternResolver.getResources(mapperPath));
bean.setTypeAliasesPackage(basePackage);
} catch (IOException e) {
e.printStackTrace();
}
return bean;
}
}
- com.tedu.cn包下分别创建entity,mapper,service,controller子包,每一个包的对应的代码如下:
entity包:
package com.tedu.cn.entity;
import java.io.Serializable;
/**
* @phone:13595672347
* @qq:1441826270
* @作者:雷玉荣
* @company: 贵州达内科技有限公司
* @program 程序 = 数据结构 + 算法 (构成元素 + 运行机理)
* @comment 达内教育专注于做技术人的指路明灯,
* 职场生涯的精神导师
* @date 2019/4/18 12:11
*/
public class User implements Serializable {
private String cn_user_id;
private String cn_user_name;
private String cn_user_password;
public String getCn_user_desc() {
return cn_user_desc;
}
public void setCn_user_desc(String cn_user_desc) {
this.cn_user_desc = cn_user_desc;
}
private String cn_user_token;
private String cn_user_nick;
private String cn_user_desc;
public String getCn_user_id() {
return cn_user_id;
}
public void setCn_user_id(String cn_user_id) {
this.cn_user_id = cn_user_id;
}
public String getCn_user_name() {
return cn_user_name;
}
public void setCn_user_name(String cn_user_name) {
this.cn_user_name = cn_user_name;
}
public String getCn_user_password() {
return cn_user_password;
}
public void setCn_user_password(String cn_user_password) {
this.cn_user_password = cn_user_password;
}
public String getCn_user_token() {
return cn_user_token;
}
public void setCn_user_token(String cn_user_token) {
this.cn_user_token = cn_user_token;
}
public String getCn_user_nick() {
return cn_user_nick;
}
public void setCn_user_nick(String cn_user_nick) {
this.cn_user_nick = cn_user_nick;
}
}
mapper包:
package com.tedu.cn.mapper;
import com.tedu.cn.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @phone:13595672347
* @qq:1441826270
* @作者:雷玉荣
* @company: 贵州达内科技有限公司
* @program 程序 = 数据结构 + 算法 (构成元素 + 运行机理)
* @comment 达内教育专注于做技术人的指路明灯,
* 职场生涯的精神导师
* @date 2019/5/13 22:45
*/
@Mapper
public interface UserMapper {
void insert(User user);
@Select("select * from cn_user")
List<User> getUsers();
}
service包:
package com.tedu.cn.service;
import com.tedu.cn.entity.User;
import java.util.List;
/**
* @phone:13595672347
* @qq:1441826270
* @作者:雷玉荣
* @company: 贵州达内科技有限公司
* @program 程序 = 数据结构 + 算法 (构成元素 + 运行机理)
* @comment 达内教育专注于做技术人的指路明灯,
* 职场生涯的精神导师
* @date 2019/5/13 23:32
*/
public interface UserService {
List<User> listUsers();
User addUser(User user);
}
service包下面的impl包:
package com.tedu.cn.service.impl;
import com.tedu.cn.entity.User;
import com.tedu.cn.mapper.UserMapper;
import com.tedu.cn.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.UUID;
/**
* @phone:13595672347
* @qq:1441826270
* @作者:雷玉荣
* @company: 贵州达内科技有限公司
* @program 程序 = 数据结构 + 算法 (构成元素 + 运行机理)
* @comment 达内教育专注于做技术人的指路明灯,
* 职场生涯的精神导师
* @date 2019/5/13 23:33
*/
@Service
public class UserServiceImpl implements UserService {
@Resource
private UserMapper mapper;
@Override
public List<User> listUsers() {
return mapper.getUsers();
}
@Override
@Transactional
public User addUser(User user) {
user.setCn_user_id(UUID.randomUUID().toString());
if(user.getCn_user_nick()==null){
user.setCn_user_nick(user.getCn_user_name());
}
user.setCn_user_token("1");
mapper.insert(user);
return user;
}
}
- com.tedu.cn包下创建App启动类,代码如下:
package com.tedu.cn;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* @phone:13595672347
* @qq:1441826270
* @作者:雷玉荣
* @company: 贵州达内科技有限公司
* @program 程序 = 数据结构 + 算法 (构成元素 + 运行机理)
* @comment 达内教育专注于做技术人的指路明灯,
* 职场生涯的精神导师
* @date 2019/5/13 23:36
*/
@SpringBootApplication
@EnableTransactionManagement
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class);
}
}
- 启动App类测试
浏览器地址栏输入:127.0.0.1/user/list.action,运行结果如下:
至此Springboot+druid+mybatis+mysql+Maven整合整合完毕
最后
以上就是心灵美板栗为你收集整理的Springboot+druid+mybatis+mysql+Maven整合的全部内容,希望文章能够帮你解决Springboot+druid+mybatis+mysql+Maven整合所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复