spring jdbc:initialize-database

本文介绍如何使用Spring的jdbc:initialize-database配置,在应用启动或关闭时执行SQL脚本以初始化数据库。通过设置data-source、enabled、ignore-failures等属性,可以灵活控制脚本的执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有的时候我们需要在应用启动或关闭的时候加载一些数据库脚本来执行某些任务,在spring中jdbc:initialize-database 能很好的解决这一需求。具体配置如下:

 <!-- 应用启动执行sql,初始化数据库脚本-->
<jdbc:initialize-database data-source="dataSource"   enabled="false" ignore-failures="ALL">
        <jdbc:script location="classpath*:sql-init.sql" encoding="UTF-8" separator=";" execution="INIT"/>
    </jdbc:initialize-database>

data-source: 数据源bean
enabled:是否启用,默认为true
ignore-failures: 执行脚本时忽略错误类型,ALL,DROP,NONE。

  • ALL:忽略所有错误
  • DROP:忽略删除表的错误
  • NONE:不忽略错误,即遇到错误就停止执行(默认为NONE)

jdbc:script:这个属性是必需的 至少一个,表示要执行的脚本

  • location:需要执行的脚本的路径
  • encoding:脚本编码
  • separator:脚本指令分隔符,默认为 分号(;)
  • execution:执行脚本的时机,INIT,DESTROY; INIT 表示在bean初始化有执行,DESTROY表示在bean销毁时执行。
暂时禁用动态数据源进行修改(返回完整yml文件代码):server: port: 8089 # tomcat: # uri-encoding: utf-8 # #最小线程数 # min-spare-threads: 500 # #最大线程数 # max-threads: 2000 # #最大链接数 # max-connections: 6500 # #最大等待队列长度 # accept-count: 1000 # #链接建立超时时间 # connection-timeout: 12000 spring: datasource: tomcat: max-wait: 50 max-active: 60000 min-idle: 20 initial-size: 20 dynamic: primary: mdt strict: true datasource: mdt: url: jdbc:mysql://47.122.54.87:20012/mdt?useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8&rewriteBatchedStatements=true username: root password: fjyrdl@2024 driver-class-name: com.mysql.cj.jdbc.Driver type: com.zaxxer.hikari.HikariDataSource # certificate: # url: jdbc:mysql://47.111.234.74:20081/xh?useSSL=false&allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 # username: dwz # password: lBz_o99ZrL # driver-class-name: com.mysql.cj.jdbc.Driver # type: com.zaxxer.hikari.HikariDataSource hikari: connection-timeout: 60000 #等待连接池分配链接的最大时长(毫秒) idle-timeout: 60000 #一个连接idle状态的最大时长(毫秒) max-pool-size: 60 #连接池中允许的最大连接数 min-idle: 10 validation-timeout: 3000 redis: #数据库索引 database: 0 host: 47.122.54.87 port: 20016 #password: password jedis: pool: #最大连接数 max-active: 8 #最大阻塞等待时间(负数表示没限制) max-wait: -1 #最大空闲 max-idle: 8 #最小空闲 min-idle: 0 #连接超时时间 timeout: 10000 # data: # mongodb: # uri: mongodb://119.3.157.129/admin # database: palm-college # username: yirui # password: fjyrdl%2020% # authentication-database: admin rabbitmq: host: 47.122.54.87 port: 20015 username: guest password: guest swagger: # 是否开启swagger enabled: false #
03-18
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值