Spring Boot整合MyBatis和Druid

来源:互联网 发布:软件和信息技术服务业 编辑:程序博客网 时间:2024/05/21 07:09

Spring Boot整合MyBatis和Druid

项目结构

这里写图片描述

数据库表结构

CREATE TABLE `users` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(20) DEFAULT NULL,  `password` varchar(20) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;

代码

  1. application.properties

    server.context-path=/demospring.datasource.platform=mysqlspring.datasource.type=com.alibaba.druid.pool.DruidDataSourcespring.datasource.url=jdbc:mysql://127.0.0.1:3306/testspring.datasource.username=rootspring.datasource.password=rootspring.datasource.driverClassName=com.mysql.jdbc.Driver# 初始化大小,最小,最大spring.datasource.initialSize=5spring.datasource.minIdle=5spring.datasource.maxActive=20# 配置获取连接等待超时的时间spring.datasource.maxWait=60000# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.timeBetweenEvictionRunsMillis=60000# 配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.minEvictableIdleTimeMillis=300000spring.datasource.validationQuery=SELECT 1 FROM DUALspring.datasource.testWhileIdle=truespring.datasource.testOnBorrow=falsespring.datasource.testOnReturn=false# 打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.poolPreparedStatements=truespring.datasource.maxPoolPreparedStatementPerConnectionSize=20# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙spring.datasource.filters=stat,wall,log4j# 通过connectProperties属性来打开mergeSql功能;慢SQL记录spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000# 合并多个DruidDataSource的监控数据#spring.datasource.useGlobalDataSourceStat=truemybatis.mapperLocations=classpath:mapper/*.xml mybatis.typeAliasesPackage=com.example.demo.entity
  2. 实体类User

    public class User {    private String username;    private String password;    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}
  3. UserDao(注意添加@mapper注解)

    @Mapperpublic interface UserDao {    List<User> userList();}
  4. UserMapper.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.example.demo.dao.UserDao">    <select id="userList" resultType="User">        select * from users    </select></mapper>
  5. UserService

    @Componentpublic class UserService {    @Autowired    private UserDao userDao;    public List<User> userList(){        List<User> list = userDao.userList();        return list;    }}
  6. UserController

    @RestControllerpublic class UserController {    @Autowired    private UserService userService;    @RequestMapping("/userList")    public List<User> userList(){        List<User> list = userService.userList();        return list;    }}
  7. DemoApplication

    @SpringBootApplication@ServletComponentScanpublic class DemoApplication {    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}
  8. druid相关配置
    DruidConfig.java

    @Configurationpublic class DruidConfig{    @Bean    @ConfigurationProperties(prefix="spring.datasource")    public DataSource druidDataSource() {        return new DruidDataSource();    }}

    Servlet配置 DruidServlet.java

    @SuppressWarnings("serial")@WebServlet(urlPatterns = "/druid/*",    initParams={            @WebInitParam(name="allow",value="127.0.0.1"),// IP白名单             @WebInitParam(name="deny",value="192.168.1.1"),// IP黑名单            @WebInitParam(name="loginUsername",value="admin"),// 用户名            @WebInitParam(name="loginPassword",value="admin"),// 密码            @WebInitParam(name="resetEnable",value="false")// 禁用“Reset All”功能    })public class DruidServlet extends StatViewServlet{}

    Filter配置 DruidFilter.java

@WebFilter(filterName = "druidWebStatFilter", urlPatterns = "/*",        initParams = {@WebInitParam(name = "exclusions", value = "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*")// 忽略的资源        })public class DruidFilter extends WebStatFilter {}

运行结果

这里写图片描述

Druid监控页面

这里写图片描述

原创粉丝点击