19-springboot整合mybaits

本文详细介绍了如何在SpringBoot项目中整合MyBatis,包括配置Druid数据源、MyBatis的基本使用、MyBatis-Generator生成代码、解决@Repository注解报错问题以及PageHelper分页插件的集成。此外,还涵盖了日志配置的相关步骤。

新建springboot项目

druid学习地址

https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

 

1.引入依赖

 <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>druid-spring-boot-starter</artifactId>
     <version>1.1.10</version>
  </dependency>

application.yml和application.properties区别?
  yml文件的好处,天然的树状结构,一目了然,实质上跟properties是差不多的。

2.application.yml配置druid

server:
  servlet:
    context-path: /springboot

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.连接池配置
      #初始化连接池的连接数量 大小,最小,最大
      initial-size: 5
      min-idle: 5
      max-active: 20
      #配置获取连接等待超时的时间
      max-wait: 60000
      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存的时间,单位是毫秒
      min-evictable-idle-time-millis: 30000
      validation-query: SELECT 1 FROM DUAL
      test-while-idle: true
      test-on-borrow: true
      test-on-return: false
      # 是否缓存preparedStatement,也就是PSCache  官方建议MySQL下建议关闭   个人建议如果想用SQL防火墙 建议打开
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
      filter:
        stat:
          merge-sql: true
          slow-sql-millis: 5000
      #3.基础监控配置
      web-stat-filter:
        enabled: true
        url-pattern: /*
        #设置不统计哪些URL
        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
        #设置监控页面的登录名和密码
        login-username: admin
        login-password: admin
        allow: 127.0.0.1
        #deny: 192.168.1.100

 

 启动SpringBoot项目访问druid
  
  http://localhost:tomcat端口号/项目名称/druid/

配置mybatis

1.导入依赖

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

 

MyBatis-Spring-Boot-Starter依赖将会提供如下:
  1) 自动检测现有的DataSource。
  2) 将创建并注册SqlSessionFactory的实例,该实例使用SqlSessionFactoryBean将该DataSource作为输入进行传递。
  3) 将创建并注册从SqlSessionFactory中获取的SqlSessionTemplate的实例。
  4) 自动扫描您的mappers,将它们链接到SqlSessionTemplate并将其注册到Spring上下文,以便将它们注入到您的bean中。

  就是说,使用了该Starter之后,只需要定义一个DataSource即可(application.properties或application.yml中可配置),它会自动创建使用该DataSource的SqlSessionFactoryBean以及SqlSessionTemplate。会自动扫描你的Mappers,连接到SqlSessionTemplate,

2.使用Mybatis-Generator插件生成代码

2.1 导入并修改generatorConfig.xml和jdbc.properties(resources下)

generatorC

Spring Boot整合MyBatis和Druid主要是为了简化在Spring Boot应用中使用这两种流行数据库组件的过程。以下是步骤: 1. **添加依赖**: - 首先,在你的Maven或Gradle构建文件中添加对Spring Data JPA、MyBatis以及Druid的依赖。 Maven示例: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> </dependency> ``` 2. **配置数据源**: - 在`application.properties`或`application.yml`文件中,配置Druid的数据源属性,如URL、用户名、密码、监控统计等。 3. **设置MyBatis**: - 创建`mybatis-config.xml`或者使用`@MapperScan`注解扫描Mapper接口所在的包,配置SqlSessionFactory。 - 如果需要,可以创建一个BaseMapper接口,其他Mapper继承它并实现通用操作。 4. **JPA和MyBatis选择**: - Spring Data JPA主要用于声明式事务处理和查询,适合大部分业务场景。 - MyBatis提供更为灵活的手动SQL控制,适用于复杂查询或者性能优化需求。 5. **整合使用**: - 在控制器层,你可以根据需要选择使用JPA的Repository进行CRUD操作,或者直接注入Service层的MyBatis Service进行交互。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值