1、配置文件application.yml

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/nabai
    username: root
    password: root


    initialSize: 5
    minIdle: 1
    maxActive: 50


    maxWait: 60000


    timeBetweenEvictionRunsMillis: 60000


    minEvictableIdleTimeMilli: 30000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false


    poolPreparedStatements: false
    filters: stat,wall,log4j


    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000


    #useGlobalDataSourceStat: true
mybatis:
  type-aliases-package: com.eba.bean

2、数据源 阿里的 druid.propertis

#数据库设置
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/nabai?useUnicode=true&characterEncoding=utf8&autoReconnect=true&useSSL=true
spring.datasource.username=root
spring.datasource.password=root
#--------------------------
# 下面为连接池的补充设置,应用到上面所有数据源中
# 初始化大小,最小,最大
spring.datasource.initialSize=5
spring.datasource.minIdle=1
spring.datasource.maxActive=50
# 配置获取连接等待超时的时间
spring.datasource.maxWait=60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
spring.datasource.timeBetweenEvictionRunsMillis=60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
spring.datasource.minEvictableIdleTimeMillis=300000
spring.datasource.validationQuery=SELECT 1 FROM DUAL
spring.datasource.testWhileIdle=true
spring.datasource.testOnBorrow=false
spring.datasource.testOnReturn=false
# 打开PSCache,并且指定每个连接上PSCache的大小
spring.datasource.poolPreparedStatements=false
#spring.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=true

3、数据源的代码

package com.eba.druidconfig;


import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import javax.sql.DataSource;
/**
 * Created by Thinkpad on 2018/2/8.
 */
@Configuration
@PropertySource(value = "classpath:application.properties")
public class DruidConfiguration {
        @Bean(destroyMethod = "close", initMethod = "init")
        @ConfigurationProperties(prefix = "spring.datasource")
        public DataSource druidDataSource() {
            DruidDataSource druidDataSource = new DruidDataSource();
            return druidDataSource;
        }


        /**
         * 注册一个StatViewServlet
         * @return
         */
        @Bean
        public ServletRegistrationBean druidStatViewServlet(){
            //org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
            ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");


            //添加初始化参数:initParams
            //白名单:
            servletRegistrationBean.addInitParameter("allow","127.0.0.1");
            //IP黑名单 (存在共同时,deny优先于allow) : 如果满足deny的话提示:Sorry, you are not permitted to view this page.
            servletRegistrationBean.addInitParameter("deny","192.168.1.73");
            //登录查看信息的账号密码.
            servletRegistrationBean.addInitParameter("loginUsername","admin");
            servletRegistrationBean.addInitParameter("loginPassword","123456");
            //是否能够重置数据.
            servletRegistrationBean.addInitParameter("resetEnable","false");
            return servletRegistrationBean;
        }


        /**
         * 注册一个:filterRegistrationBean
         * @return
         */
        @Bean
        public FilterRegistrationBean druidStatFilter(){


            FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());


            //添加过滤规则.
            filterRegistrationBean.addUrlPatterns("/*");


            //添加不需要忽略的格式信息.
            filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
            return filterRegistrationBean;
        }
    }
4、配置文件开发dao层

(1)在.yml文件中添加 #配置文件版 有mapperXML配置文件
mybatis:
mapper-locations: classpath:mybatis/mapper/*-mapper.xml
config-location: classpath:mybatis/mybatis-config.xml
(2)在source创建mybatis文件夹,在创建mybatis-config.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis有mapper配置文件的时候-->
<configuration>
    <typeAliases>
       <!-- <typeAlias type="com.winter.bean.UserMyBatis" alias="UserMyBatis"></typeAlias>-->
    </typeAliases>
</configuration>

(3)再在mybatis下创建mapper文件*-mapper.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.winter.mapper.UserMapper2">
    <resultMap id="userMybatisMap" type="com.winter.bean.UserMyBatis">
        <id column="id" property="id" jdbcType="VARCHAR"/>
        <result column="username" property="username" jdbcType="VARCHAR" />
        <result column="pwd" property="pwd" jdbcType="VARCHAR" />
    </resultMap>
    <sql id="user_Column_List" >
        id,username,pwd
    </sql>
<select id="getNoAnnotationUser" resultMap="userMybatisMap">
select <include refid="user_Column_List"/> from tb_user;
</select>
</mapper>

3、注解开发dao层

1、有mapper接口,在接口的方法上写SQL语句:
例:  //根据id查询用户
    @Select("select * from tb_user where id=#{user.id}")
    public User select4User(Map<String,Object> param);
2、在application.yml中加:
#注解配置dao层
mybatis:
  type-aliases-package: com.eba.bean  //自动扫描bean实体类配置


3、自动扫描mapper文件
  在启动类加 @MapperScan("com.eba.mapper")//使用注解查询,扫描mapper,dao层