gpt4 book ai didi

Java - 只执行一次SQL查询

转载 作者:行者123 更新时间:2023-11-30 21:22:37 32 4
gpt4 key购买 nike

我正在使用 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 ..
}

关于Java - 只执行一次SQL查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21545096/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com