DatabasePopulator详解

来源:互联网 发布:天龙八部mac版 编辑:程序博客网 时间:2024/06/03 04:46

org.springframework.jdbc.datasource.init.DatabasePopulator

1作用

interface DatabasePopulator用于填充、初始化或清理数据库的策略

2方法

public void populate(Connection connection) throws SQLException,ScriptException

该方法的作用是使用提供的JDBC连接填充,初始化或清理数据库。

——Connection:已知的JDBC连接

——SQLException:在发生数据库访问异常时抛出。

——ScriptException:在除数据库异常之外的所有异常时抛出。

3实现类

该接口目前已知的实现类有:CompositeDatabasePopulator, ResourceDatabasePopulator

3.1 CompositeDatabasePopulator

3.1.1作用

CompositeDatabasePopulator代表了一系列的DatabasePopulator的实现,执行所有的脚本。

3.1.2方法

public void addPopulators(DatabasePopulator...populators)

——添加一个或多个DatabasePopulator

public void populate(Connection connection) throwsSQLException, ScriptException

——执行所有的脚本

public void setPopulators(DatabasePopulator... populators)

——设置一个或多个DatabasePopulator

3.2 ResourceDatabasePopulator(重点)

3.2.1作用

使用SQL脚本中定义的外部资源进行初始化或清理数据库。

3.2.2方法

public void addScript(Resource script)

——添加一个用于初始化或清理数据库的外部资源

public void addScripts(Resource... scripts)

——添加多个用于初始化或清理数据库的外部资源

public void setScripts(Resource... scripts)

——设置用于初始化或清理数据库的外部资源,并替代之前所有的添加的资源

public void setSqlScriptEncoding(String sqlScriptEncoding)

——如果sql脚本与项目编码不一致,用于设置sql脚本的编码

public void setSeparator(String separator)

——设置脚本中sql的分隔符,默认是英文分号(“;”

public void setCommentPrefix(String commentPrefix)

——设置注释的前缀,默认是两个中划线(--”

public void setBlockCommentStartDelimiter(String blockCommentStartDelimiter)

——设置段落注释的开始标记,默认是/*”

public void setBlockCommentEndDelimiter(String blockCommentEndDelimiter)

——设置段落注释的结束标记,默认是*/”

public void setContinueOnError(boolean continueOnError)

——设置当出错是是否继续,默认是false即不继续

public void setIgnoreFailedDrops(boolean ignoreFailedDrops)

——设置是否忽略删除错误,默认是false即不忽略

public void populate(Connection connection) throws ScriptException

——进行初始化或清理数据库。

public void execute(DataSource dataSource) throws ScriptException

——根据给定的数据源执行ResourceDatabasePopulator

 

另外:我们在使用上面进行初始化的时候还会涉及到另外几个类:

4、相关类

DatabasePopulatorUtilsScriptUtilsDataSourceInitializer

这几个类主要是配合DatabasePopulator进行初始化、清理数据库使用的工具类或设置类等。如需要或感兴趣的可以点击对应的查看文档。

5、使用示例

ResourceDatabasePopulator populator =new ResourceDatabasePopulator();

//加载sql资源

populator.setScripts(new Resource[] {new ClassPathResource(fileName) });

//执行sql

DatabasePopulatorUtils.execute(populator,dataSource);


0 0
原创粉丝点击