我必須構建一個插入查詢字符串來創建一個Prepared Statement。我有Excel文件中的所有列名稱。創建具有大量列的準備語句
有超過表250列,要花費大量的時間和精力來創建一個簡單的插入查詢。我必須計算列並將?
置於查詢中的值字段中。
是否有任何其他的方法來創建這些查詢。
請推薦。 由於事先
我必須構建一個插入查詢字符串來創建一個Prepared Statement。我有Excel文件中的所有列名稱。創建具有大量列的準備語句
有超過表250列,要花費大量的時間和精力來創建一個簡單的插入查詢。我必須計算列並將?
置於查詢中的值字段中。
是否有任何其他的方法來創建這些查詢。
請推薦。 由於事先
我可以建議這樣做,實現這將是一個更大的問題,不過,從我可以做出來的一個範例,這是一個相當涉及的任務!
可以使用JXL API來讀取這些列名,您還可以存儲它們的類型在同一個Excel文件(當你準備語句,這將是有益的)。
那麼您的Excel將是:
Column 1 | Integer
Column 2 | String
Column 3 | Date
等
JXL將讓你閱讀這一切到你的Java程序,存放在地圖信息(java.util.HashMap中) ,所以在這一點上你有你的程序中的列的名稱和它們的數據類型。
現在,關於創建準備好的聲明。
String allColumnNames ="";
foreach element in the hashmap, allColumnNames+=getKey() + ","
所以在這一點allColumnNames擁有所有列名
做準備的聲明段:
3210有去你準備好的聲明。
在此之後,插入的東西,你可以通過再次HashMap的迭代,並調用了setString或SETINT或任何因HashMap中的「價值」的一部分。
正如我所說的,它是一個漫長而複雜的過程,但你甚至可以修改此過程只設定值在Excel文件中,然後直接從Excel的將它們插入到你的表。
較快地插入你可以使用批量預處理語句或COPY FROM(取決於數據庫及其驅動程序) - 見http://rostislav-matl.blogspot.com/2011/08/fast-inserts-to-postgresql-with-jdbc.html獲取更多信息。
你在做什麼只是一次性工作!你正在尋找一些機械解決方案或Java解決方案? – Santosh 2012-02-24 11:48:18
是的,因爲我必須寫相同的查詢,但略有修改超過10個表 – Abhij 2012-02-24 11:56:52