springboot整合mybatis

springboot整合mybatis很简单,因为springboot集成了大部分的框架,第三方库。

一、springboot整合mybatis

1、创建项目时要勾选相关的组件

 2、创建好项目后在导入pom依赖

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

加了这个pom依赖会自动检测DataSource,然后创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递,接着创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例,再自动扫描mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到bean中。

这就是使用springboot的好处,相比spring整合mybatis的时候方便很多。

3、配置application.yml 

server:
  servlet:
    context-path: /springboot
  port: 8080
  
spring:
    datasource:
    #1.JDBC
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8
    username: root
    password: 123
    druid:
      #2.\u8FDE\u63A5\u6C60\u914D\u7F6E
      #\u521D\u59CB\u5316\u8FDE\u63A5\u6C60\u7684\u8FDE\u63A5\u6570\u91CF \u5927\u5C0F\uFF0C\u6700\u5C0F\uFF0C\u6700\u5927
      initial-size: 5
      min-idle: 5
      max-active: 20
      #\u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
      max-wait: 60000
      #\u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
      time-between-eviction-runs-millis: 60000
      # \u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
      min-evictable-idle-time-millis: 30000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: true
      test-on-return: false
      # \u662F\u5426\u7F13\u5B58preparedStatement\uFF0C\u4E5F\u5C31\u662FPSCache  \u5B98\u65B9\u5EFA\u8BAEMySQL\u4E0B\u5EFA\u8BAE\u5173\u95ED   \u4E2A\u4EBA\u5EFA\u8BAE\u5982\u679C\u60F3\u7528SQL\u9632\u706B\u5899 \u5EFA\u8BAE\u6253\u5F00
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # \u914D\u7F6E\u76D1\u63A7\u7EDF\u8BA1\u62E6\u622A\u7684filters\uFF0C\u53BB\u6389\u540E\u76D1\u63A7\u754C\u9762sql\u65E0\u6CD5\u7EDF\u8BA1\uFF0C'wall'\u7528\u4E8E\u9632\u706B\u5899
      filter:
        stat:
          merge-sql: true
          slow-sql-millis: 5000
      #3.\u57FA\u7840\u76D1\u63A7\u914D\u7F6E
      web-stat-filter:
        enabled: true
        url-pattern: /*
        #\u8BBE\u7F6E\u4E0D\u7EDF\u8BA1\u54EA\u4E9BURL
        exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"
        session-stat-enable: true
        session-stat-max-count: 100
      stat-view-servlet:
        enabled: true
        url-pattern: /druid/*
        reset-enable: true
        #\u8BBE\u7F6E\u76D1\u63A7\u9875\u9762\u7684\u767B\u5F55\u540D\u548C\u5BC6\u7801
        login-username: admin
        login-password: admin
        allow: 127.0.0.1
        #deny: 192.168.1.100

4、使用mybatis的 generator 自动生成代码

5、注意不同

生成代码后在xxMapper.xml中,我们在spring整合的时候是写@Repository注解的,但在springboot会报错,解决办法有两种

①、@repository标签改为@Mapper标签

添加@Mapper之后,这个接口在编译时会生成相应的实现类。但请注意,这个接口不可以定义同名的方法,因为会生成相同的id,因此这个接口不支持重载。这样做虽然能解决文集,但以后都要为每个Dao层的接口添加@Mapper注解

②、不修改@Repository注解,在启动了中添加@MapperScan("com.zking.xx.mapper")

扫描多个包:@MapperScan({"xx.dao","xx.mapper"})

 

在测试类中,与之前的spring整合也是不同的。

在spring中test测试要继承该类

 在springboot中在test类中写入两行注解 

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Springboot03Application.class)

在启动类中加入事务管理器注解@EnableTransactionManagement,配合@Transactional使用

//启用事物管理器:将方法回滚,如一个方法中同时调用了修改和删除的方法,修改出错,那么一切都回到原位。
  @EnableTransactionManagement

二、配置分页插件

1、导入依赖

dependency>
     <groupId>com.github.pagehelper</groupId>
     <artifactId>pagehelper-spring-boot-starter</artifactId>
     <version>1.2.3</version>
  </dependency>

2、application.yml中配置

pagehelper:
     helperDialect: mysql
     reasonable: true
     supportMethodsArguments: true
     params: count=countSql

3、配置log日志:方便在运行时在控制台看到SQL语句

logging:
     level: 
       com.zking.springboot01.mapper: debug

4、在启动类中加入注解

  //启用动态代理
  @EnableAspectJAutoProxy

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值