从0开始学习SpringCould(5)--SpringBoot 集成Mybatis使用Druid数据源

来源:互联网 发布:js input file value 编辑:程序博客网 时间:2024/06/05 23:47

前面几篇简单介绍了SpringBoot的配置及集成freemarker,本篇主要对SpringBoot集成Mybatis并使用Druid作为数据源进行介绍。

一、maven依赖

<dependency>    <groupId>org.mybatis.spring.boot</groupId>    <artifactId>mybatis-spring-boot-starter</artifactId>    <version>${mybatis.version}</version></dependency><dependency>    <groupId>mysql</groupId>    <artifactId>mysql-connector-java</artifactId>    <version>${mysql.version}</version>    <!--<scope>runtime</scope>--></dependency><dependency>    <groupId>com.alibaba</groupId>    <artifactId>druid</artifactId>    <version>${druid.version}</version></dependency>

相关版本号,mysql.version使用的SpringBoot中定义的

<druid.version>1.0.15</druid.version><mybatis.version>1.1.1</mybatis.version>


二、新建一张测试表

CREATE TABLE `demo` (  `ID` varchar(40) NOT NULL,  `CODE` varchar(100) DEFAULT NULL,  `NAME` varchar(100) DEFAULT NULL,  PRIMARY KEY (`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;


三、项目新建对应的包,并创建数据库关联的相关文件,entity、mapper、mapper xml,这里结构如下

这里写图片描述


四、application.yml配置datasource

spring:  datasource:       # mybatis 配置,使用druid数据源   url: jdbc:mysql://localhost:3306/springboot_demo?useUnicode=true&characterEncoding=UTF-8   username: root   password: root123   type: com.alibaba.druid.pool.DruidDataSource   driver-class-name: com.mysql.jdbc.Driver   filters: stat   maxActive: 20   initialSize: 1   maxWait: 60000   minIdle: 1   timeBetweenEvictionRunsMillis: 60000   minEvictableIdleTimeMillis: 300000   validationQuery: select 'x'   testWhileIdle: true   testOnBorrow: false   testOnReturn: false   poolPreparedStatements: true   maxOpenPreparedStatements: 20

Druid的各项参数说明,可以自行百度,以上参数基本就可以满足正常情况下使用。


五、Mybatis配置类配置

package com.example.springboot_demo.mybatis;import com.alibaba.druid.pool.DruidDataSource;import org.apache.ibatis.session.SqlSessionFactory;import org.mybatis.spring.SqlSessionFactoryBean;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import org.springframework.core.io.support.ResourcePatternResolver;import javax.sql.DataSource;/** * 禁止数据源自动配置,使用手动创建 * @author zhoudong */@Configuration@MapperScan(basePackages = "com.example.springboot_demo.mapper")public class MyBatisConfig {    @Bean    public SqlSessionFactory sqlSessionFactory() throws Exception {        SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();        sqlSessionFactoryBean.setDataSource(dataSource());        // 设置mybatis的主配置文件        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();        sqlSessionFactoryBean.setMapperLocations(resolver.getResources("classpath*:sqlmapper/*.xml"));        return sqlSessionFactoryBean.getObject();    }    @Bean    @ConfigurationProperties(prefix = "spring.datasource")    public DataSource dataSource(){        return new DruidDataSource();    }}

@Configuration 告诉Springboot 这是一个配置类
@MapperScan 告诉Spring Mapper类所在的包


六、启动类添加扫描

@SpringBootApplication@ComponentScan(basePackages = "com.example.springboot_demo")public class SpringbootDemoApplication {


七、编写controller 做个接口测试

@PostMapping("/add")public @ResponseBody Map<String,Object> add(@RequestBody Demo demo){    Map<String,Object> map = new HashMap<>();    log.info(" ** 接收到请求信息:{}", JSON.toJSONString(demo));    demo.setId(UUID.randomUUID().toString().replaceAll("-",""));    try {        demoService.insert(demo);        map.put("resp_code","T");    }catch (Exception e){        map.put("resp_code","F");        e.printStackTrace();    }    return map;}

随便找个post工具发个请求

这里写图片描述

当然,这里也可以使用swagger-ui进行测试,关于swagger-ui的使用,将会在后期的博客中介绍。

此时查看数据库,如果增加了相应的数据,就说明集成的没毛病。

本篇结束,谢谢!

更多内容请关注微信公众号:

这里写图片描述

阅读全文
0 0