java:运用spring的初始化接口InitializingBean实现在项目启动时修改数据库
此方法较适用于分布式项目数据库
实现spring的初始化接口InitializingBean并实现初始化时要执行的方法afterPropertiesSet
public class XXX implements InitializingBean{
@Override
public void afterPropertiesSet() throws Exception {
.........//项目启动时要做的事
}
}
在初始化方法里做修改字段的操作,先是通过jdbc查到表的所有字段及字段的数据类型 以key value形式放在map里面
然后开始执行修改字段类型的sql
由于在项目启动时就会执行一次这个方法 如果多次启动就会造成多次修改字段, 而我们只想更改一次字段的数据类型。
代码中的判断 if("VARCHAR2".equalsIgnoreCase(cacheMap.get("ZFNAME")){...} 对这个问题进行了处理 避免造成多次修改字段
当字段ZFNAME的类型为varchar2时才执行修改为clob类型 否则不修改
除了修改字段类型外当然也可以做别的事
如:检查某表是否存在 存在的话里面的某值是否存在 不存在则添加