mysql Java只执行一次SQL查询
我正在用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”查询被成功执行,它抛出一个执行选项“Table”Table_name“已经存在”。中的其他查询。sql文件未执行。每次我运行服务器时都会发生这种情况。请帮忙
# 1 楼答案
听上去,您正在尝试设置数据库模式,但代码启动时,其中一条语句无法运行,因为表已经存在。您需要使用预先检查的语句(例如:
CREATE TABLE IF NOT EXISTS
),或者在执行每个语句后捕获异常,以便它可以继续执行下一个语句