我是0123'的新手,這正是我想要做的。基本上,目標是將數據從Excel加載到SQL Server中。有兩個清單,一個是關鍵,另一個是價值。如何調用這兩個列表來運行批處理SQL語句?Groovy - 批量查詢地圖或列表
這是我到目前爲止有:
def k = [Field1,Field2,Field3,Field4,Field5]
def Value1 = 1
def Value2 = 2
def Value3 = 3
def Value4 = 4
def Value5 = 5
def v = [Value1,Value2,Value3,Value4,Value5]
def query = """\
INSERT INTO TableA
($k)
VALUES
($v)
"""
sql.withTransaction {
sql.withBatch(20) {stmt ->
stmt.addBatch(query)
}
}
通過這樣做,它看起來像Groovy中將把整個列表作爲一個大的字符串。我可以輸出列表作爲字符串,並刪除單引號,但似乎並不酷。我們可以參數化列表中的字段嗎?
用於K名單,我需要有像下面的所有字段單引號,因爲它給我的錯誤:
def k = ['Field1','Field2','Field3','Field4','Field5']
我知道字段名稱應弦,但通過以下方式一次運行一個SQL查詢。我覺得要修改列表比糾結查詢要好。但如果我不這樣做,請阻止我。
def query = """\ INSERT INTO TableA (Field1,Field2,Field3,Field4,Field5) VALUES (${Value1},${Value2},${Value3},${Value4},${Value5}) """ sql.execute(query)
我甚至可以將這兩個列表添加到地圖中(見下文)。這是否會成爲運行批量查詢的更好方式?我只是不知道如何在這個項目中使用地圖。
def m = [k, v].transpose().collectEntries {it}
當然,我想出了一個方法可能不是很理想,我也想從任何SQL注入,以防止。如果您可以向我提供一個示例代碼,我願意接受任何最佳做法。再次感謝您的時間和幫助。