簡體   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