繁体   English   中英

Java-仅执行一次SQL查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM