【发布时间】:2014-02-27 23:39:57
【问题描述】:
我正在使用 Spring 框架和 MySQL 数据库开发 J2EE 应用程序。我只想从java(可能带有请求映射)执行SQL脚本一次。我已将 sql 语句作为键值对存储在属性文件中,并循环遍历每个键并执行语句。
Connection con = ds.getConnection();
Statement stmt = con.createStatement();
Enumeration enuKeys = properties.keys();
while (enuKeys.hasMoreElements()) {
String key = (String) enuKeys.nextElement();
String value = properties.getProperty(key);
stmt.execute(value);
}
这是正确的做法吗?还是有其他方法可以做到这一点?提前致谢。
更新:
正如评论中提到的,我尝试了 Spring jdbc 初始化数据库,但它没有执行 sql 文件中的所有查询。只有第一个 'create' 查询成功执行,它会抛出一个 execption “表 'table_name' 已经存在”。 .sql 文件中的其他查询不执行。每次我运行服务器时都会发生这种情况。请帮忙
【问题讨论】:
-
我认为存储 sql 过程可以帮助您。你检查了吗?
-
将 sql 语句保存在属性中可能不是一个好方法。最好把它作为一个程序。比如你有insert sql语句,放入procedure中,调用它。
-
我不会在属性文件中包含“插入”查询。只有一次活动,如创建表或数据库。需要时我会在不同的环境中运行它。
-
@RC 感谢您的快速回复。似乎非常有用。我需要如何将查询放在 .sql 文件中才能工作?
标签: java mysql spring jdbc spring-data