spring jdbc:initialize-database

有的时候我们需要在应用启动或关闭的时候加载一些数据库脚本来执行某些任务,在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销毁时执行。

server: port: 51809 spring: application: name: coupon-send-service sharding-sphere: datasource: names: shard0,shard1 shard0: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/sk_day09?useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true username: root password: 123456 # Druid连接池配置 initial-size: 5 min-idle: 5 max-active: 20 shard1: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/sk_day10?useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true username: root password: 123456 # Druid连接池配置 initial-size: 5 min-idle: 5 max-active: 20 sharding: tables: task_user: actual-data-nodes: shard$->{0..1}.task_user database-strategy: inline: sharding-column: user_id algorithm-expression: shard$->{user_id % 2} props: sql: show: true batch: initialize-schema: always job: enabled: false redis: host: localhost port: 6379 password: 123456 database: 0 cloud: alibaba: seata: tx-service-group: coupon-send-service-group mybatis-plus: configuration: map-underscore-to-camel-case: true xxl: job: admin: addresses: http://127.0.0.1:8080/xxl-job-admin # 地址填我们的调度中心的地址 executor: appname: xxl-job-executor-batch-send-coupon # 这个名称可以自定义,称为执行器的名称 address: ip: port: 9999 # 端口要填,为了调度中心调度使用 logpath: ./logs/xxl-job-executor-sample logretentiondays: 30 seata: application-id: ${spring.application.name} tx-service-group: coupon-send-service-group service: vgroup-mapping: coupon-send-service-group: default grouplist: default: 127.0.0.1:8091 config: type: file registry: type: file job: data: path: E:/spring-batch-example/
最新发布
09-04
暂时禁用动态数据源进行修改(返回完整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、付费专栏及课程。

余额充值