详解MybatisPlus集成nacos导致druid连接不上数据库

我很高兴为您提供“详解MybatisPlus集成nacos导致druid连接不上数据库”的完整攻略。

  1. 问题描述
    MybatisPlus集成nacos后,我们发现druid连接池无法连接数据库了,导致应用程序无法启动。这是由于Druid数据源在生成时需要使用一些配置参数,例如驱动类名、连接字符串、用户名/密码等,而这些参数在nacos配置中心中没有被正确指定。

  2. 解决方案
    为了解决这个问题,我们需要在nacos配置中心中指定正确的配置参数。下面是解决方案的具体步骤:

步骤1:创建nacos数据源配置文件
我们需要创建一个dataId为“db.properties”,group为“DEFAULT_GROUP”的配置文件,并填写连接相关的配置信息。例如:

#连接池初始化大小、最小、最大值
druid.initialSize=1
druid.minIdle=1
druid.maxActive=20
#连接超时时间
druid.maxWait=60000
# 配置获取连接等待超时的时间
druid.timeBetweenEvictionRunsMillis=60000
# 连接保持活跃的最小时间
druid.minEvictableIdleTimeMillis=300000
# 配置检测连接是否有效
druid.testWhileIdle=true
druid.testOnBorrow=false
druid.testOnReturn=false
# 是否缓存preparedStatement,也就是PSCache
druid.poolPreparedStatements=true
# 预处理语句缓存大小,最大为 2048
druid.maxPoolPreparedStatementPerConnectionSize=20

# 配置 Druid 数据源的监控信息
# 开启监控统计功能
druid.stat=true
# 统计 SQL 执行的最大时间,单位为毫秒
druid.stat.sql.MaxTimeMillis=2000
# SQL 执行日志记录
druid.filter.stat.logSlowSql=true
druid.filter.stat.slowSqlMillis=1000

# 配置 MySQL 连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

步骤2:在MybatisPlus中指定nacos配置中心的地址,并读取db.properties配置文件
我们需要在MybatisPlus的配置文件(通常是application.yml文件)中指定nacos配置中心的地址,并读取之前创建的db.properties配置文件。例如:

mybatis-plus:
  # mapper文件所在路径
  mapper-locations: classpath:/mybatis/mapper/**/*.xml
  # 实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.example.demo.dto
  global-config:
    # 全局查询参数默认值
    db-config:
      logic-delete-value: 0
      logic-not-delete-value: 1
    # 超过10000条sql自动开启分页
    sql-injector: com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
    # 公共字段自动填充
    meta-object-handler: com.example.demo.handler.MyMetaObjectHandler

spring:
  main:
    #spring boot应用的name
    web-application-type: servlet
    # 指定nacos的地址
    cloud:
      nacos:
        config:
          server-addr: localhost:8848
  application:
    # 命名空间
    name: demo
  datasource:
    # druid数据源配置
    druid:
      name: DruidDataSource
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://192.168.1.20:3306/nacos?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
      username: root
      password: root
      # 读取nacos配置中心上的db配置文件
      async-init: true
      filter:
        #druid监控器,用于统计监控信息
        stat:
          logSlowSql: true
        #防御SQL注入,避免黑客攻击
        wall:
          enabled: true
          dbType: mysql
          config:
            multiStatementAllow: true
            # 允许一次执行多条SQL语句
            noneBaseStatementAllow: true
            # 允许非基础SQL语句的访问,如SQLServer的sp_executesql语句
            deleteAllow: false
            updateAllow: false
            selectAllow: false
            truncateAllow: false
  1. 示例说明
    假设我们有一个Spring Boot项目,项目名称为“demo”,我们想要将Druid连接池集成到MybatisPlus中,并将数据库连接信息保存在nacos配置中心中。

示例1:创建nacos配置文件
我们在nacos配置中心中创建一个dataId为“db.properties”,group为“DEFAULT_GROUP”的配置文件,内容如下:

# 配置 MySQL 连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis_plus?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=root123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#连接池配置
druid.initialSize=1
druid.minIdle=1
druid.maxActive=20

示例2:在MybatisPlus中引入nacos配置中心
我们在MybatisPlus的配置文件(通常是application.yml文件)中指定nacos配置中心的地址,并读取之前创建的db.properties配置文件,代码如下:

spring:
  application:
    name: demo
  cloud:
    nacos:
      config:
        server-addr: localhost:8848

mybatis-plus:
  global-config:
    db-config:
      logic-delete-value: 0
      logic-not-delete-value: 1
  sql-injector: com.baomidou.mybatisplus.core.injector.DefaultSqlInjector
  meta-object-handler: com.example.demo.handler.MyMetaObjectHandler
  configuration:
    map-underscore-to-camel-case: false

  datasource:
    druid:
      name: com.alibaba.druid.pool.DruidDataSource
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: ${spring.datasource.driver-class-name}
      url: ${spring.datasource.url}
      username: ${spring.datasource.username}
      password: ${spring.datasource.password}
      async-init: true
      filter:
        stat:
          logSlowSql: true
        wall:
          enabled: true
          dbType: mysql

在这种配置下,我们可以实现MybatisPlus与Druid的集成,并将配置信息保存在nacos配置中心中。

希望本文对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解MybatisPlus集成nacos导致druid连接不上数据库 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • Android学习笔记45之gson解析json

    Android学习笔记45之gson解析json 简介 Google推出的Gson是一个使用Java语言实现的Json解析库,可以将Json字符串自动解析成Java对象,或者将Java对象转成Json字符串。在Android开发中,使用Gson解析Json数据是非常常见的操作。本文将介绍Gson解析Json的完整攻略。 配置Gson库 在项目的build.g…

    Java 2023年5月26日
    00
  • 浅谈java 数据处理(int[][]存储与读取)

    浅谈Java数据处理(int[][]存储与读取) 在Java中,数组是我们常用的数据结构之一。在某些场景下,我们需要处理的数据可能是一个二维数组,本篇文章将会讲解如何处理这种数据结构,包括如何存储和读取。 存储二维数组 Java中的二维数组可以使用 int[][] 来定义,其可以表示一个矩阵。我们可以通过以下代码来定义一个二维数组: int[][] matr…

    Java 2023年5月26日
    00
  • Spring各版本新特性的介绍

    Spring各版本新特性的介绍 Spring是目前Java开发中最常用的框架之一,每个版本都会引入新的特性和功能。本文将详细介绍Spring各版本的新特性。 Spring 5.x的新特性 异步编程 Spring 5.x 版本引入了响应式编程模型,支持异步编程。通过 WebFlux 模块,可以使用反应堆编程模型,并使用反应式 Streams API 处理异步事…

    Java 2023年5月19日
    00
  • 浅析java异常栈

    下面我将为您详细讲解“浅析Java异常栈”的完整攻略。 浅析Java异常栈 异常栈的概述 在Java中,异常是指当前程序不能够继续执行下去的错误或问题。当程序发生异常时,会自动创建一个异常对象,并将这个异常对象抛出给Java虚拟机,Java虚拟机再根据异常对象调用相应的异常处理程序进行处理。 异常栈是异常处理机制的重要组成部分,它是一个由多个异常堆栈组成的数…

    Java 2023年5月27日
    00
  • Java回调方法详解

    Java回调方法详解 什么是回调方法 在Java中,回调方法指的是通过一个接口将方法传递给另一个对象,使该对象在适当的时间调用该方法。回调方法是一种常见的编程技巧,通常用于事件驱动编程、异步编程以及回调函数和回调机制的实现中。 回调方法的实现需要以下几个步骤: 创建一个接口,接口中定义回调方法的名称和参数; 在其中一个类中实现该接口,并实现回调方法; 在另一…

    Java 2023年5月26日
    00
  • SpringBoot详解实现自定义异常处理页面方法

    下面是关于“SpringBoot详解实现自定义异常处理页面方法”的完整攻略: SpringBoot详解实现自定义异常处理页面方法 前言 在我们的应用程序中,经常会遇到一些异常问题,比如资源不存在、参数错误等等,这时候我们就需要对这些异常进行统一处理,并且返回给用户友好的错误提示信息。在SpringBoot中,通过实现自定义异常处理页面方法,我们可以非常方便地…

    Java 2023年5月27日
    00
  • 教你使用java将excel数据导入MySQL

    下面是“教你使用java将excel数据导入MySQL”的完整攻略: 步骤一:准备工作 确认已经安装了Java开发环境(JDK)和MySQL数据库,并配置好了环境变量。 下载并安装Apache POI库,它是Java操作Excel的必备库,可在https://poi.apache.org/download.html 中获取最新版本。 创建一个Java项目,并…

    Java 2023年6月1日
    00
  • MyBatis多数据源的两种配置方式

    MyBatis多数据源的两种配置方式包括XML配置和注解配置。 XML配置 步骤一:配置数据源 在mybatis-config.xml文件中配置多数据源的数据源信息,注意要配置各自的数据库连接信息以及数据库驱动信息。 <environments default="dev"> <environment id="d…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部