专栏首页好好学java的技术栈玩转springboot:整合mybatis实例

玩转springboot:整合mybatis实例

这篇文章讲解一下springboot整合mybatis,其实,springboot整合mybatis和springmvc整合mybatis并没有什么太大的区别,大体上还是差不多哦,只是比springmvc更加的简单一点,下面我们就以一个例子来讲解一下整合mybatis。

我们先看一下pom.xml

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.3.1</version>
</dependency>

因为mybatis已经整合到starter中了,所以我们只需要引入这个依赖就可以了。

下面,我们以Employee员工为例

public class Employee {

    private Integer id;
    private String lastName;
    private Integer gender;
    private String email;
    private Integer dId;
    //getter setter
}
  • 数据层接口(注解版)
//@Mapper或者@MapperScan将接口扫描装配到容器中
@Mapper
public interface EmployeeMapper {

    @Select("select * from employee where id=#{id}")
    public Employee getEmpById(Integer id);

    @Insert("Insert into employee(email) values(#{email})")
    public void insertEmp(Employee employee);
}

上面这是以注解的方式进行配置,当然我们也可以使用配置文件

  • 数据层(配置文件版)
//@Mapper或者@MapperScan将接口扫描装配到容器中
public interface EmployeeMapper {

    public Employee getEmpById(Integer id);

    public void insertEmp(Employee employee);
}

因为是配置文件版,所以我们需要配置mapper配置文件

  • EmployeeMapper.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.sihai.springboot.mapper.EmployeeMapper">

   <!--    public Employee getEmpById(Integer id);
    public void insertEmp(Employee employee);-->
    <select id="getEmpById" resultType="com.sihai.springboot.bean.Employee">
        SELECT * FROM employee WHERE id=#{id}
    </select>

    <insert id="insertEmp">
        INSERT INTO employee(email) VALUES (#{email})
    </insert>
</mapper>

我们在看一下mybatis数据源的配置,我们这里使用yml的方式,数据源使用druid,配置如下

  • 数据源配置application.yml
spring:
  datasource:
#   数据源基本配置
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://192.168.15.22:3306/mybatis
    type: com.alibaba.druid.pool.DruidDataSource
#   数据源其他配置
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true
#   配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
mybatis:
  # 指定全局配置文件位置
  config-location: classpath:mybatis/mybatis-config.xml
  # 指定sql映射文件位置
  mapper-locations: classpath:mybatis/mapper/*.xml

这就是mybatis整合springboot 的过程了,要了解mybatis的用法,请查看下面的文章https://blog.csdn.net/sihai12345/article/category/6875572

本文分享自微信公众号 - 好好学java(SIHAIloveJAVA)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-10-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Java中的锁[原理、锁优化、CAS、AQS]

    结论:如果volatile变量修饰符使用恰当的话,它比synchronized的使用和执行成本更低,因为它不会引起线程上下文的切换和调度。

    好好学java
  • bat等大公司常考多线程面试题【力荐】

    思考题:希望大家积极的思考,并且可以踊跃的说出自己的想法,想法不管对与错,只要说出来就是一种提高,所以,希望小伙伴们可以把自己的想法在留言区给出,这样大家也可以...

    好好学java
  • 为什么老外不愿意用MyBatis?

    Spring 团队的Josh Long自己在Twitter上做了一个调查。1625次投票,样本量不算大,但也能说明问题。和我答案最后的那些调查图表基本一致。

    好好学java
  • 深入浅出mybatis之入门使用

    mybatis是一个持久层框架,可以支持SQL定制和存储过程,实现数据库记录到Java POJO对象之间的映射。 所以说,mybatis是一个ORM框架。 ...

    2Simple
  • mybatis学习|下载并导入mybatis源码到idea

    mybatis做为目前国内最为流行的开源orm框架,我们平时在使用时会感受到其带来的诸多便利,但是很少去深入分析,mybatis源码代码量不多,功能丰富,是一个...

    微笑的小小刀
  • 整合MyBatis实例

    这篇文章讲解一下springboot整合mybatis,其实,springboot整合mybatis和springmvc整合mybatis并没有什么太大的区别,...

    Java技术江湖
  • hbase源码系列(八)从Snapshot恢复表

    在看这一章之前,建议大家先去看一下snapshot的使用。这一章是上一章snapshot的续集,上一章了讲了怎么做snapshot的原理,这一章就怎么从snap...

    岑玉海
  • Spring Boot(四):如何优雅的使用 Mybatis

    Orm框架的本质是简化编程中操作数据库的编码,发展到现在,基本上就剩宣称不用谢一句sql的hibernate,一个是可以灵活调试动态sql的mybatis,两者...

    会呼吸的Coder
  • 父亲节,来认识一下这几位“爸爸”

    艾伦·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机科学之父,人工智能之父。19...

    华章科技
  • Thread初探

    爱撒谎的男孩

扫码关注云+社区

领取腾讯云代金券