SpringBoot整合jdbc、durid、mybatis详解,数据库的连接就是这么简单

简介: SpringBoot底层统一采用SpringData处理数据库,这一章主要来讲一下SpringBoot整合jdbc、durid、mybatis的方式。

SpringBoot底层统一采用SpringData处理数据库,这一章主要来讲一下SpringBoot整合jdbc、durid、mybatis的方式。


(一)整合jdbc


整合jdbc主要有三步: 1.引入依赖 2.配置数据源 3.访问 引入springdata启动器和mysql连接包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

在application.yaml或者application.properties中配置spring datasource数据源。在新版本的spring-boot-starter-jdbc,mysql驱动由原先的com.mysql.jdbc.Driver变为了com.mysql.cj.jdbc.Driver


spring:
  datasource:
    url: jdbc:mysql://localhost:3306/testsql?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

通过jdbc模板访问

@RestControllerpublicclassJdbcController {
@AutowiredprivateJdbcTemplatejdbcTemplate;
@GetMapping("/jdbc")
publicList<Map<String, Object>>query(){
Stringsql="select * from user";
List<Map<String, Object>>maps=jdbcTemplate.queryForList(sql);
returnmaps;
    }
}

(二)整合druid


druid是阿里巴巴公司开发的数据库连接池,它的官网称Druid是Java语言中最好的数据库连接池。Druid能够提供强大的监控和扩展功能。 druid的使用首先也是引入依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.23</version>
</dependency>

com.alibaba.druid.pool.DruidDataSource 基本配置参数如下:

网络异常,图片无法展示
|
网络异常,图片无法展示
|


Spring Boot 2.0 以上默认使用 com.zaxxer.hikari.HikariDataSource 数据源,但可以通过 spring.datasource.type 指定数据源。我们将type修改为druid。


设置完数据源后,就可以设置数据源连接初始化大小、最大连接数、等待时间、最小连接数 等设置项


spring:
  datasource:
    url: jdbc:mysql://localhost:3306/myssh?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource
    #连接池属性
    #Spring Boot 默认是不注入这些属性值的,需要自己绑定
    #druid 数据源专有配置
    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,stat:监控统计、log4j:日志记录、wall:防御sql注入
    #如果允许时报错  java.lang.ClassNotFoundException: org.apache.log4j.Priority
    #则导入 log4j 依赖即可,Maven 地址:https://mvnrepository.com/artifact/log4j/log4j
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500

因为在配置文件中使用了log4j,因此我们也需要引入log4j的依赖。


最后编写配置类,ConfigurationProperties注解大家都很熟悉了,从配置文件的spring.datasource下读取配置。statViewServlet方法配置后台监控功能,主要设置ip黑白名单,用户名密码等。statFilter用于配置过滤器等消息。


@ConfigurationpublicclassDruidConfig {
@ConfigurationProperties("spring.datasource")
@BeanpublicDataSourcedruidDataSource(){
returnnewDruidDataSource();
    }
//后台监控//因为SpringBoot内置了servlet容器,所以没有web.xml,替代方法:ServletRegisterationBean@BeanpublicServletRegistrationBeanstatViewServlet(){
//创建servlet注册实体ServletRegistrationBeanservletRegistrationBean=newServletRegistrationBean(newStatViewServlet(),"/druid/*");
//设置ip白名单servletRegistrationBean.addInitParameter("allow","127.0.0.1");
//设置ip黑名单,如果allow与deny共同存在时,deny优先于allowservletRegistrationBean.addInitParameter("deny","192.168.0.19");
//设置控制台管理用户servletRegistrationBean.addInitParameter("loginUsername","druid");
servletRegistrationBean.addInitParameter("loginPassword","123456");
//是否可以重置数据servletRegistrationBean.addInitParameter("resetEnable","false");
returnservletRegistrationBean;
    }
@BeanpublicFilterRegistrationBeanstatFilter(){
//创建过滤器FilterRegistrationBeanfilterRegistrationBean=newFilterRegistrationBean(newWebStatFilter());
//设置过滤器过滤路径filterRegistrationBean.addUrlPatterns("/*");
//忽略过滤的形式filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
returnfilterRegistrationBean;
    }
}

最后输入


https://link.juejin.cn/?target=http%3A%2F%2Flocalhost%3A8080%2Fdruid%2Flogin.html%25E8%25BF%259B%25E5%2585%25A5%25E7%2599%25BB%25E9%2599%2586%25E9%25A1%25B5%25E9%259D%25A2

网络异常,图片无法展示
|


druid所提供的强大功能。关于druid更多的内容可以从


https://link.juejin.cn/?target=https%3A%2F%2Fgithub.com%2Falibaba%2Fdruid%25E8%258E%25B7%25E5%258F%2596


网络异常,图片无法展示
|


网络异常,图片无法展示
|


(三)整合Mybatis


在项目中基本上不会使用jdbc直接连接数据库,对数据库的操作往往会通过一些持久层的框架,下面来讲讲Mybatis的整合,Mybatis的整合分为以下几步:


1.导入包


2.配置文件


3.mybatis配置


4.编写sql


5.调用


整合包 mybatis-spring-boot-starter


<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.1.3</version>
</dependency>

配置mybatis,这里主要配置了type-aliases-package和mapper-locations

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/myssh?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  type-aliases-package: com.javayz.springbootdemo.pojo
  mapper-locations: classpath:mybatis/mapper/*.xml

编写Mapper接口,到这里都属于Mybatis的基础操作,就不做介绍了

@Mapper@RepositorypublicinterfaceUserSelectMapper {
List<User>queryUserList();
}

mapper.xml配置文件编写sql语句

<?xmlversion="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="com.javayz.springbootdemo.mapper.UserSelectMapper"><selectid="queryUserList"resultType="User">        select * from user
</select></mapper>

(四)总结


在这篇文章中我主要介绍了SpringBoot中jdbc、durid、mybatis的整合,SpringBoot的整合步骤基本都一致,引入依赖、配置文件、调用。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
10月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
795 2
|
Java 数据库连接 数据库
【YashanDB知识库】WAS配置YashanDB JDBC连接
【YashanDB知识库】WAS配置YashanDB JDBC连接
|
11月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1857 5
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
SQL Java 数据库连接
【YashanDB数据库】由于网络带宽不足导致的jdbc向yashandb插入数据慢
由于网络带宽不足导致的jdbc向yashandb插入数据慢
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
Java 数据库连接 数据库
Spring boot 使用mybatis generator 自动生成代码插件
本文介绍了在Spring Boot项目中使用MyBatis Generator插件自动生成代码的详细步骤。首先创建一个新的Spring Boot项目,接着引入MyBatis Generator插件并配置`pom.xml`文件。然后删除默认的`application.properties`文件,创建`application.yml`进行相关配置,如设置Mapper路径和实体类包名。重点在于配置`generatorConfig.xml`文件,包括数据库驱动、连接信息、生成模型、映射文件及DAO的包名和位置。最后通过IDE配置运行插件生成代码,并在主类添加`@MapperScan`注解完成整合
1729 1
Spring boot 使用mybatis generator 自动生成代码插件
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
903 2
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
1201 0