[英]Java - Execute SQL queries only once
我正在使用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文件中的所有查询。 只有第一个“创建”查询成功执行,并且抛出“表'table_name'已经存在”的执行。 .sql文件中的其他查询未执行。 每当我运行服务器时都会发生这种情况。 请帮助
听起来,您正在尝试在代码启动时设置数据库架构,并且由于表已存在而无法运行该语句之一。 您需要使用预先检查的语句(例如: CREATE TABLE IF NOT EXISTS
),或者在执行每个语句后捕获异常,以便可以继续执行下一个语句。
try {
stmt.execute(value);
} catch (Exception e) {
//.. raise some warning and continue ..
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.