有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    听上去,您正在尝试设置数据库模式,但代码启动时,其中一条语句无法运行,因为表已经存在。您需要使用预先检查的语句(例如:CREATE TABLE IF NOT EXISTS),或者在执行每个语句后捕获异常,以便它可以继续执行下一个语句

    try {
      stmt.execute(value);
    } catch (Exception e) {
      //.. raise some warning and continue ..
    }