0
即時嘗試從SQL服務器獲取我的維度到MongoDB中,我可以這樣做,但然後我必須爲每個維度編寫代碼,這很費時。一些代碼片段:如何從SQL服務器維度中獲取數據到mongoDB
Mongo mongo = new Mongo();
DB db = mongo.getDB("Nelly");
DBCollection facil = db.getCollection("Facilities");
while (r.next()) {
BasicDBObject facObj = new BasicDBObject();
String faccKey = (r.getString("dim_Facilities_dKey"));
if (faccKey != null && !faccKey.trim().isEmpty()
&& faccKey.length() != 0)
facObj.append("dKey", faccKey);
facil.insert(facObj);
但我希望能夠以某種循環和列表的做快,但我無法弄清楚如何解決這個問題,我已經嘗試了一切!
while(r.next()){
for (int i = 1; i < columnCount + 1; i++) {
HashMap<String, ArrayList<String>> hashmap = new HashMap<String, ArrayList<String>>();
ArrayList<String> arr=new ArrayList<String>();
arr.add(r.getString(i));
BasicDBObject facObj = new BasicDBObject();
String name = rsmd.getColumnName(i);
int varde=1;
String data =r.getString(varde);
varde++;
arr.add(data);
hashmap.put(name, arr);
facObj.append(name, hashmap.values().toString());
facil.insert(facObj);
有人可以給我如何繼續前進的意見嗎?
在此先感謝
我解決了它:
ResultSet r = s.executeQuery();
ResultSetMetaData rsmd = s.getMetaData();
int columnCount = rsmd.getColumnCount();
while (r.next()) {
BasicDBObject facObj = new BasicDBObject();
for (int i = 1; i < columnCount + 1; i++) {
String name = rsmd.getColumnName(i);
String faccKey = (r.getString(i));
if (faccKey != null && !faccKey.trim().isEmpty() && faccKey.length()!= 0)
facObj.append(name, faccKey);
}
facil.insert(facObj);}
你不應該轉移專爲關係數據庫中的面向文檔的數據庫的數據庫架構。他們如何構造數據的哲學根本不同。 – Philipp 2013-04-11 15:46:57
代碼片段中的變量'r'究竟是什麼?一些迭代器,我按下了,但迭代到底是什麼? – Philipp 2013-04-11 15:48:52
ResultSet r = s.executeQuery(); – glaring 2013-04-11 15:51:14