史上最全springboot整合mybatis

本文详细介绍了如何在SpringBoot项目中整合MyBatis,包括配置数据源、引入依赖、配置MyBatis、创建Mapper接口及XML映射,实现数据库操作。

一、使用idea创建springboot项目
1、创建项目:file–>New–>Project
在这里插入图片描述
2、选择Web创建项目在这里插入图片描述
3、如果有自己的maven,可以右键项目在Setting中修改maven路径,没有就忽略此步即可在这里插入图片描述
4、到这里springboot项目就创建成功,我们可以看下目录结构
在这里插入图片描述
这里的配置文件也可以使用application.yml

二、整合mybatis
1、pom.xml引入相关jar

<!--web依赖配置-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--连接池-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.12</version>
</dependency>
<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
</dependency>
<!--引入mybatis-->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.2</version>
</dependency>
<!--工具类-->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
</dependency>
<!--guawa工具类-->
<dependency>
    <groupId>com.google.guava</groupId>
    <artifactId>guava</artifactId>
    <version>27.0.1-jre</version>
</dependency>

2、在application.properties中配置数据源

#druid
spring.druid.url=jdbc:mysql:///mysql04?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
spring.druid.driverClassName=com.mysql.jdbc.Driver
spring.druid.username=root
spring.druid.password=root
#最大链接数
spring.druid.maxActive=30
#最小链接数
spring.druid.minIdle=5
#获得链接的最大等待时间
spring.druid.maxWait=10000

#指定mybatis配置文件地址
mybatis.config-location=classpath:mybatis/mybatis-config.xml

#端口
server.port=8888
package com.xmcc.config;


import com.alibaba.druid.filter.stat.StatFilter;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.google.common.collect.Lists;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;



@Configuration   //表示为配置类
public class DruidConfig {

    //value:bean的名字
    @Bean(value = "druidDataSource" ,initMethod = "init" ,destroyMethod = "close")
    @ConfigurationProperties(prefix = "spring.druid")//对应properties中的前缀
    public DruidDataSource druidDataSource(){
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setProxyFilters(Lists.newArrayList(statFilter()));//guava创建集合过滤器配置
        return druidDataSource;
    }

    @Bean
    public StatFilter statFilter(){
        StatFilter statFilter = new StatFilter();
        statFilter.setLogSlowSql(true);//慢查询记录日志
        statFilter.setSlowSqlMillis(5);//慢查询时间s
        statFilter.setMergeSql(true);//格式化sql
        return statFilter;
    }


    @Bean
    public ServletRegistrationBean servletRegistrationBean(){
        //durid监控平台,输入http://localhost:8888/druid即可访问
        return new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
    }
}

注意:这里如果有同学的idea不能识别@ConfigurationProperties请添加这个jar:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>

3、配置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">
<configuration>
    <settings>
        <!--关闭缓存,多机环境 数据更新 不会刷新缓存-->
        <setting name="cacheEnabled" value="false"/>
        <!--开启驼峰匹配-->
        <setting name="mapUnderscoreToCamelCase" value="true"/>
        <!--允许主键生成-->
        <setting name="useGeneratedKeys" value="true"/>
        <!--配置默认的执行器。SIMPLE 就是普通的执行器;
        REUSE 执行器会重用预处理语句(prepared statements);
        BATCH 执行器将重用语句并执行批量更新。
        <setting name="defaultExecutorType" value="REUSE"/>
        <setting name="defaultStatementTimeout" value="600"/>
    </settings>
    <!--修改mybatis别名-->
    <typeAliases>
        <package name="xxx.xxx"/>
    </typeAliases>
    <!--指定mapper配置文件-->
    <mappers>
        <mapper resource="mapper/OrderMapper.xml"/>//这里以OrderMapper为例
    </mappers>
</configuration>

4、配置Mapper接口

package com.xmcc.springboot_mybatis_mysql01.dao;

import com.xmcc.springboot_mybatis_mysql01.entity.Order;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

@Mapper
public interface OrderMapper {
    List<Order> queryAll();
}

5、配置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.xmcc.springboot_mybatis_mysql01.dao.OrderMapper" >
    <select id="queryAll" resultType="order">
      select * from xmcc_order
    </select>
</mapper>

6、到这里spring整合mybatis就完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值