Springboot+druid+mybatis+mysql+Maven整合

springboot+druid整合mybatis

  1. 创建Maven web app工程
    在这里插入图片描述
  2. 完善工程结构
    在这里插入图片描述
  3. 导入相关依赖
<?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>

  1. 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
  1. 创建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 &quot; ) 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 ( &quot; {mapper.package.path}&quot;) private String basePackage; @Value(&quot; {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;
    }
    }
  1. 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;
    }
}

  1. 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);
    }
}

  1. 启动App类测试
    浏览器地址栏输入:127.0.0.1/user/list.action,运行结果如下:
    在这里插入图片描述
    至此Springboot+druid+mybatis+mysql+Maven整合整合完毕
发布了31 篇原创文章 · 获赞 12 · 访问量 4136

猜你喜欢

转载自blog.csdn.net/qq_21098263/article/details/90183897