spring jdbc:initialize-database使用详解

Org.springframework.jdbc.datasource.init使用详解

org.springframework.jdbc.datasource.init支持在项目启动的时候对数据库的初始化操作。

一、使用方式:使用Spring XML进行初始化数据库(Initializing a database using Spring XML)

a).首先需要为XML加上spring-jdbc命名空间    xmlns:jdbc="http://www.springframework.org/schema/jdbc"

xsi:schemaLocation="http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd" 

b).在配置文件加入initialize-database标签配置

<jdbc:initialize-database data-source="dataSource" enabled="true"  ignore-failures="NONE" separator="@@">

<jdbc:script location="classpath:com/foo/sql/db-schema.sql"/>

<jdbc:script location="classpath:com/foo/sql/db-test-data.sql"/>

</jdbc:initialize-database>

上面实例的scripts指定了两种不同的脚本,一种是创建数据库表,一种作为测试数据。当然,该脚本支持匹配模式,即多个数据库时候可以使用classpath*:/com/foo/**/sql/*-data.sql进行通配。

二、参数详解

jdbc:initialize-database标签中有一些可配置的参数选项,用配置数据库初始化的一些事件行为。

a).dataSource配置好的数据源。

b).enabled 是用来表明初始化数据库是否执行。这个enabled的值是一个boolean值。设置方法有两种:直接设置truefalse;或者读取配置文件来设置。

示例:

1、直接设置

<jdbc:initialize-database data-source="dataSource" enabled="true"

    <jdbc:script location="classpath:/add-resources.sql"/>

</jdbc:initialize-database>

2、配置文件读取

        <jdbc:initialize-database data-source="dataSource"  enabled="#{systemProperties.INITIALIZE_DATABASE}">

    <jdbc:script location="classpath:/add-resources.sql"/>

</jdbc:initialize-database>

c).ignore-failures有三个值:NONE,DROPS,ALL

设置为NONE时,不忽略任何错误,当sql执行报错时服务启动终止。

设置为DROPS时,忽略删除错误,如当sql中有一个删除表而表不存在,此时这个错误会被忽略。

设置为ALL时,忽略任何错误。

d).separator分隔标识,可配置,该参数可以配置在jdbc:initialize-database中,会对所有script起作用,当然也可以在jdbc:script中单个配置

jdbc:script配置之后,则该script的分隔符使用jdbc:script配置中的。

示例:

<jdbc:initialize-database data-source="dataSource" eparator="@@">

   <jdbc:script location="classpath:com/foo/sql/db-schema.sql" separator=";"/>

<jdbc:script location="classpath:com/foo/sql/db-test-data-1.sql"/>

  <jdbc:script location="classpath:com/foo/sql/db-test-data-2.sql"/>

</jdbc:initialize-database>

此时第一个脚本分隔符为;,剩余两个脚本使用@@

特别的:默认不配置的情况下,sql语句直接必须使用;分开,或者当整个script不存在;时每行一个sql语句。

 

附:spring官方文档链接(part 15.9

http://docs.spring.io/spring/docs/5.0.0.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
报错信息"Logging system failed to initialize using configuration from 'classpath:logback-spring.xml'"表示使用配置文件'classpath:logback-spring.xml'初始化日志系统失败。这个问题可能有几个可能的原因。首先,可能是配置文件中存在中文字符导致解析错误。其次,可能是编译插件未设置字符集编码导致无法解析XML文件。 根据引用和引用的内容,如果配置文件中存在中文字符或其他非法字符,会导致解析错误。在解决这个问题时,需要确保配置文件中的字符是有效的,并且没有任何语法错误。 此外,引用和引用提到了编译插件未设置字符集编码导致无法解析XML文件的问题。这意味着在项目的构建过程中,编译插件应该设置正确的字符集编码,以便正确解析XML文件。 最后,引用中的内容显示了编译后的文件中存在乱码的情况,这可能是由于编码问题导致的。确保所有的文件都使用相同的字符集编码,并且编译后的文件与源文件保持一致。 综上所述,解决这个问题的步骤包括: 1. 检查配置文件中是否存在中文字符或其他非法字符,并确保语法正确性。 2. 确保编译插件设置正确的字符集编码,以便正确解析XML文件。 3. 确保所有的文件都使用相同的字符集编码,并且编译后的文件与源文件保持一致。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值