首页 > 数据库 >SpringBoot3连接Mysql数据库

SpringBoot3连接Mysql数据库

时间:2024-07-02 15:20:24浏览次数:15  
标签:-- true 数据库 mysql boot SpringBoot3 Mysql org com

pom引入包,启动器

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.1</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.xcg</groupId>
    <artifactId>webapp</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>webapp</name>
    <description>WebApp project for Spring Boot3</description>
    <properties>
        <java.version>17</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

<!--        <dependency>-->
<!--            <groupId>com.mysql</groupId>-->
<!--            <artifactId>mysql-connector-j</artifactId>-->
<!--            <scope>runtime</scope>-->
<!--        </dependency>-->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>3.3.1</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-3-starter -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-3-starter</artifactId>
            <version>1.2.23</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <version>8.4.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<!--        <dependency>-->
<!--            <groupId>org.apache.logging.log4j</groupId>-->
<!--            <artifactId>log4j-core</artifactId>-->
<!--            <version>2.23.1</version>-->
<!--        </dependency>-->

<!--        &lt;!&ndash; https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api &ndash;&gt;-->
<!--        <dependency>-->
<!--            <groupId>org.apache.logging.log4j</groupId>-->
<!--            <artifactId>log4j-api</artifactId>-->
<!--            <version>2.23.1</version>-->
<!--        </dependency>-->

        <!-- 使用SpringBoot自带的log组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!-- 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>3.0.3</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.auth0/java-jwt -->
        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>4.4.0</version>
        </dependency>

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

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.34</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

application.yml配置,注意数据库驱动版本,旧版本(Mysql5)的数据库驱动没有cj,MYSQL 5 驱动:com.mysql.jdbc.Driver,MYSQL 6+ 驱动:com.mysql.cj.jdbc.Driver
注:连接字符串中要指定时区serverTimezone,不然可能会报错 https://www.cnblogs.com/daemonFlY/p/9820541.html
GMT是格林威治标准时间的缩写,也叫“世界时”(World Time),用于表示全球协调的时间。
GMT+8表示在格林威治标准时间上加上8个小时,也就是UTC(Coordinated Universal Time)+8小时,代表了中国的东八区时区。
因此,GMT+8和GMT%2B8表示的都是同一个概念,即UTC+8小时的时区。
在URL中,一些特殊字符需要进行URL编码才能被网络传输,比如"+“这个符号。而”%2B"代表了"+"符号的编码。

server:
  port: 8100
spring:
  profiles:
    active: dev #表示开发环境,nacos config
  application:
    name: webapp
  # 数据源类型
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource # 当前数据源操作类型
    # MYSQL 5 驱动:com.mysql.jdbc.Driver,MYSQL 6+ 驱动:com.mysql.cj.jdbc.Driver
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/xcgdb?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true&failOverReadOnly=false
    username: root
    password: root
    druid:
      # 连接超时时间,60000毫秒(1分钟)
      socket-timeout: 60000
      filter:
        stat:
          # 启动SQL语句监控,同时会影响其他面板中的SQL展示(如:影响"URI监控"中的jdbc数据)
          enabled: true
          # 数据库类型(实测没啥用,会自动根据上面的连接自动识别)
          db-type: mysql
          # 记录慢日志("SQL监控"面板中数值会标记为红色)
          log-slow-sql: true
          # 慢日志判定标准(单位:毫秒)
          slow-sql-millis: 3000
          # 自定义日志级别,默认日志级别"ERROR"
          slow-sql-log-level: ERROR
        wall:
          # 启用防火墙
          enabled: true
          # 数据库类型(实测没啥用,会自动根据上面的连接自动识别)
          db-type: h2
          config:
            # 是否允许DELETE操作(报错异常:java.sql.SQLException:sql injection violation, dbType mysql, druid-version 1.2.21, delete not allow : DELETE FROM ...)
            delete-allow: false
            # 是否允许DROP TABLE操作
            drop-table-allow: false
      initial-size: 5 #数据库连接池初始化连接数量
      min-idle: 5 #数据库连接池最小连接数量
      max-active: 20 #数据库连接池最大连接数量
      # 配置获取连接等待超时的时间 60000毫秒(1分钟)
      max-wait: 60000
      # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位毫秒。
      time-between-eviction-runs-millis: 60000
      # 配置一个连接在池中最小生存时间 300秒/5分钟
      min-evictable-idle-time-millis: 300000
      # Druid用来测试连接是否可用的SQL语句,默认值每种数据库都不相同。
      # 参考 https://www.jianshu.com/p/c9845884d735
      validation-query: SELECT 1 FROM DUAL
      # 空闲时测试连接是否可用
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false
      # 打开 PSCache,并且指定每个连接上 PSCache 的大小
      pool-prepared-statements: true
      max-pool-prepared-statement-per-connection-size: 20
      # 配置监控统计拦截的 Filter,去掉后监控界面 SQL 无法统计,wall 用于防火墙 stat,wall,log4j
      filters: stat,wall
      # 通过 connection-properties 属性打开 mergeSql 功能;慢 SQL 记录
      connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
      # 合并多个DruidDataSource的监控数据
      useGlobalDataSourceStat: true
      # 配置 DruidStatFilter Web应用/URI监控/Session监控
      web-stat-filter:
        # 启用"Web应用/URI监控/Session监控"面板
        enabled: true
        # 监控这里指定的路径
        url-pattern: /*
        # 过滤路径
        exclusions: /druid/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,*.html,*.json
        # "Session监控"面板设置(RestFul纯后端没有session)
        session-stat-enable: true
        session-stat-max-count: 1000
        principal-session-name: xxc
        principal-cookie-name: xxc
        profile-enable: true
      # 配置 DruidStatViewServlet
      stat-view-servlet:
        # 启用Druid监控面板
        enabled: true
        # 面板路径(默认"/druid/*")(Druid已做了处理,不会被自定义过滤器拦截)
        url-pattern: /druid/*

        # 使用Nginx转发导致访问IP丢失,allow、deny均失效,可将allow设置为 192.168.0.0/16,10.0.0.0/8 允许所有请求,注意使用账号保护
        # IP 白名单,没有配置或者为空,则允许所有访问
        # allow: 127.0.0.1
        # IP 黑名单,若白名单也存在,则优先使用
        # deny: 192.168.31.253

        # 禁用 HTML 中 Reset All 按钮
        # 面板上的重置按钮(禁用后面板上重置按钮依然会显示和互动,但是不起作用)
        reset-enable: false
        # druid面板登录用户名/密码 默认不需要登录,设置了才需要。
        login-username: admin
        login-password: 123456

# 日志相关配置
logging:
  level:
    root: ERROR
  file:
    name: sys.log
  logback:
    rollingpolicy:
      # gz
      file-name-pattern: ${LOG_FILE}.%d{yyyy-MM-dd}.%i.zip
      max-file-size: 1MB
  pattern:
    dateformat: yyyy-MM-dd HH:mm:ss

mybatis:
  mapper-locations: classpath:mapper/*.xml
  # 如果指定了mybatis的扫描包,那么在mapper/*.xml中就不好再指定别的目录了,所以这里先注释。
#  type-aliases-package: com.xcg.webapp.model.entity

 

标签:--,true,数据库,mysql,boot,SpringBoot3,Mysql,org,com
From: https://www.cnblogs.com/xsj1989/p/18279907

相关文章

  • 1.FineReport连接Oracle数据库
    1.服务器–定义数据连接2.添加JDBC3.配置JDBC4.添加数据库查询5.输入查询语句,预览结果......
  • 开发一套java语言的智能导诊需要什么技术?java+ springboot+ mysql+ IDEA互联网智能3D
    开发一套java语言的智能导诊需要什么技术?java+springboot+mysql+IDEA互联网智能3D导诊系统源码医院导诊系统是一种基于互联网和3D人体的智能化服务系统,旨在为患者提供精准、便捷的医院就诊咨询服务。该系统整合了医院的各种医疗服务资;智慧导诊解决患者盲目就诊问题,减轻分......
  • 理解MySQL核心技术:触发器功能特点与应用案例解析
    触发器(Trigger)是MySQL中一个重要的功能,它能够在特定的数据表操作发生时自动执行预定义的SQL语句,从而实现在数据库层面的自动化操作和数据维护。在这篇文章中,我们将进一步了解MySQL触发器的相关知识,包括触发器的定义、作用、使用方法以及一些高级应用案例。一、什么是触发......
  • 如何在Oracle、MySQL、PostgreSQL中改变SQL提示格式
    HowtoChangeinSQLPromptformatinOracle,MySQL,PostgreSQL像UNIX的PS1环境变量可以改变shell操作提示符,在日常工作环境中可以提升一些效率可以防止一些误操作,很多年前在看tom关于在练习oracle操作前的一些环境配置像login.sql,比起”SQL>”还可以显示当前的用......
  • 如何在Oracle、MySQL、Postgresql中查找全表扫描SQL
    HowtofindfulltablescanSQLinOracle,MySQL,Postgresql?Queriesthatdo“fulltablescan”aretheonesthatdon’tuseindexes.However,itismoresuitabletouseafulltablescanforsmalltables,anditwillnotcauseperformanceproblems.Or......
  • MySQL 加锁案例--基于《MySQL 45 讲》的第 21 讲的总结
    前言丁奇大佬的《MySQL45讲》可以说是每个DBAboy的必读经典,但教材中,大佬用的毕竟是5.7版本,日常用 8.0的我还是得持怀疑的态度阅读文章。毕竟实践是检验真理的唯一标准。因此对21讲做了个总结(幸好8.0和5.7有出入,不然白搞了)。案例总结+验证+一点点个人思考秉承......
  • ubuntu安装mysql后修改密码
    一直没有接触ubuntu系统,今天在ubuntu上安装mysql,安装完成后发现修改密码不生效,拆腾好久。。。 切记使用root用户安装,要不然权限不够 sudoaptupdate#更新系统软件包列表sudoaptinstallmysql-server#安装MySQLServer#在安装过程中,系统可能要求设置root用户......
  • 搜索型数据库的技术发展历程与趋势前瞻
    概述随着数字科技的飞速发展和信息量的爆炸性增长,搜索引擎已成为我们获取信息的首选途径之一,典型的代表厂商如Google。然而,随着用户需求的不断演变,传统的搜索技术已经无法满足人们对信息的实时性、个性化和多样性的需求。在企业内部,这种需求更加显著。随着企业数字化转型的持续......
  • 基于Java+MySQL+SSM彩妆小样售卖商城
    系列文章目录项目介绍开发环境系统实现论文参考项目介绍随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于彩妆小样售卖商城当然也不能排除在外,随着网络技术的不断成熟,带动了彩妆小样售卖商城,它彻底改变了过去传统的管理方式,不......
  • 基于Java+MySQL+SSM斗车交易系统
    系列文章目录项目介绍系统环境系统实现论文参考项目介绍21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高......