使用Spring动态添加/更改表列

时间:2015-06-04 08:48:29

标签: java spring yii

是否可以在Spring框架中动态添加数据库表列?

我的意思是使用Spring DAO来改变表,以便在不重建或编译的情况下添加新列。

我发现使用CDbMigration在Yii(php)框架中可以实现这一点。

3 个答案:

答案 0 :(得分:1)

Spring实际上并不打算进行数据库迁移,你应该看看像FlyWay这样的工具,它们会处理它。

答案 1 :(得分:1)

虽然最好将其作为Maven生命周期的一部分来实现,但在程序上可以使用Spring框架实现相同的功能。我不建议使用基于DAO的方法。正如@Eric Citaire所提到的,建议使用像Flyway,Liquibase这样的框架。现在这两个框架都能很好地与Spring配合使用,并且具有很好的集成性。

在flyway案例中,需要添加的配置是:

 <bean id="flyway" class="org.flywaydb.core.Flyway" depends-on="dataSource">
        <property name="dataSource" ref="dataSource"/>
    </bean>

然后从代码注入flyway bean,只需访问migrate(),它将使用脚本来迁移db。

在Liquibase中可以达到同样的效果。

在liquibase的情况下,需要添加的配置是:

<bean id="liquibase" class="liquibase.integration.spring.SpringLiquibase">
      <property name="dataSource" ref="myDataSource" />
      <property name="changeLog" value="classpath:db-changelog.xml" />
      <property name="contexts" value="dev" />
 </bean>

答案 2 :(得分:0)

春天DAO?不,DAO是Data Access Object,你需要Structure Access Object 不存在(可能永远不会)。

相关问题