当前位置: 首页 > 知识库问答 >
问题:

Java-只执行一次SQL查询

姜德泽
2023-03-14

我正在开发一个带有Spring框架和MySQL数据库的J2EE应用程序。我想执行SQL脚本从java(可能与一个请求映射)只有一次。我将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 intiize数据库,但它没有执行sql文件中的所有查询。只有第一个“创建”查询成功执行,它会抛出一个执行“表table_name已经存在”。不执行. sql文件中的其他查询。每次我运行服务器时都会发生这种情况。好心帮忙

共有1个答案

锺功
2023-03-14

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

try {
  stmt.execute(value);
} catch (Exception e) {
  //.. raise some warning and continue ..
}
 类似资料:
  • 问题内容: 我正在尝试使用jaxb- maven插件使用JAXB将多个XSD转换为不同包中的POJO。我已将其设置为使用多个执行块,然后执行第一个执行块,然后出现一条消息:模式或绑定文件中未检测到更改 这是我pom.xml的摘录: 这是我收到的错误消息: 如果我交换执行块,则第一个总是执行,其余两个块得到相同的消息。 关于如何解决这个问题的任何想法? 问题答案: 通过升级到版本1.6进行了修复 和

  • 我有一个对我来说很奇怪的问题。我实现了,将使用执行。问题是,它只执行一次。。。 下面是有用的代码(是一个枚举): 有趣的是,如果我用一些if-else语句替换这个开关,它工作得很好,这意味着这个Runnable按照我的要求每50毫秒执行一次。。! 下面是调度设置: 为什么用if-else语句每50ms调用一次Runnable,为什么用switch只调用一次?? 编辑:因为你问,这里是MenuEve

  • 本文向大家介绍iOS实现代码只执行一次,包括了iOS实现代码只执行一次的使用技巧和注意事项,需要的朋友参考一下 iOS实现代码只让执行一次

  • Query 也可以直接执行一个SQL查询,即Select命令。在Postgres中支持原始SQL语句中使用 ` 和 ? 符号。 sql := "select * from userinfo" results, err := engine.Query(sql) 当调用 Query 时,第一个返回值 results 为 []map[string][]byte 的形式。 Query 的参数也允许传

  • 我正在学习angularjs,作为一个测试项目,我正在轮询一个返回活动进程列表(它们的pid)并显示这些进程的服务器。 客户端代码如下所示: 这适用于Firefox和Chrome,但不太适用于Internet Explorer 11。 所有浏览器每秒都执行ReloadData方法,但IE11实际上并不从服务器获取流程数据。Firefox和Chrome确实每秒都会获取数据。我也可以在服务器的输出中看

  • 我发现这样的php代码: 我希望这个循环会执行4次,因为$I变成了对$的引用(对吗?)。然而,循环只执行一次,并输出: a=10,i=10 我不明白为什么它会这样工作。有什么想法吗?