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