利用calcite實現(xiàn)多數(shù)據(jù)源分布式j(luò)oin

public static void main(String[] args) throws Exception{

? ? // 測試 demo,未設(shè)置 ideaMaxTime(超過空閑時間釋放jdbc連接)

??? while (true){

? ? ? ? long start= System.currentTimeMillis();

? ? ? ? Class.forName("org.apache.calcite.jdbc.Driver");

? ? ? ? Properties info= new Properties();

? ? ? ? info.setProperty("lex", "JAVA");

? ? ? ? Connection connection= DriverManager.getConnection("jdbc:calcite:", info);

? ? ? ? CalciteConnection calciteConnection= connection.unwrap(CalciteConnection.class);

? ? ? ? SchemaPlus rootSchema= calciteConnection.getRootSchema();

? ? ? ? //db1

? ? ? ? Class.forName("com.mysql.cj.jdbc.Driver");

? ? ? ? BasicDataSource ds1= new BasicDataSource();

? ? ? ? ds1.setUrl("jdbc:mysql://localhost:3310/fire_control_acceptance?useUnicode=true&serverTimezone=UTC&allowMultiQueries=true&characterEncoding=utf-8&useSSL=false&nullNamePatternMatchesAll=true");

? ? ? ? ds1.setUsername("root");

? ? ? ? ds1.setPassword("winsion123");

? ? ? ? Schema schema1= JdbcSchema.create(rootSchema, "fire_control_acceptance",

? ? ? ? ? ? ? ? ds1, null, "fire_control_acceptance");

? ? ? ? rootSchema.add("fire_control_acceptance", schema1);

? ? ? ? //db2

? ? ? ? Class.forName("com.mysql.cj.jdbc.Driver");

? ? ? ? BasicDataSource ds2= new BasicDataSource();

? ? ? ? ds2.setUrl("jdbc:mysql://localhost:3310/fire_maintenance?useUnicode=true&serverTimezone=UTC&allowMultiQueries=true&characterEncoding=utf-8&useSSL=false&nullNamePatternMatchesAll=true");

? ? ? ? ds2.setUsername("root");

? ? ? ? ds2.setPassword("winsion123");

? ? ? ? Schema schema2= JdbcSchema.create(rootSchema, "fire_maintenance",

? ? ? ? ? ? ? ? ds2, null, "fire_maintenance");

? ? ? ? rootSchema.add("fire_maintenance", schema2);

? ? ? ? Statement statement= calciteConnection.createStatement();

? ? ? ? ResultSet resultSet= statement.executeQuery(

? ? ? ? ? ? ? ? "select f.factory_id, fc.factory_name, f.name " +

? ? ? ? ? ? ? ? ? ? ? ? "from fire_maintenance.cf_fac f " +

? ? ? ? ? ? ? ? ? ? ? ? "join fire_control_acceptance.f_factory fc " +

? ? ? ? ? ? ? ? ? ? ? ? "on f.factory_id = fc.factory_id");

? ? ? ? // resultSet 轉(zhuǎn)list

? ? ? ? List list= new ArrayList();

? ? ? ? int columnCount= resultSet.getMetaData().getColumnCount();

? ? ? ? Map rowData;

? ? ? ? while (resultSet.next()) {

? ? ? ? ? ? rowData= new HashMap(columnCount);

? ? ? ? ? ? for (int i= 1; i<= columnCount; i++) {

? ? ? ? ? ? ? ? rowData.put(resultSet.getMetaData().getColumnName(i), resultSet.getObject(i));

}

? ? ? ? ? ? list.add(rowData);

}

? ? ? ? System.out.println(list);

? ? ? ? resultSet.close();

? ? ? ? statement.close();

? ? ? ? connection.close();

? ? ? ? long end= System.currentTimeMillis();

? ? ? ? System.out.println(end- start);

? ? }

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子羡鸥,更是在濱河造成了極大的恐慌甘晤,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绞惦,死亡現(xiàn)場離奇詭異公给,居然都是意外死亡借帘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門淌铐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肺然,“玉大人,你說我怎么就攤上這事腿准〖势穑” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵吐葱,是天一觀的道長街望。 經(jīng)常有香客問我,道長唇撬,這世上最難降的妖魔是什么它匕? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮窖认,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘告希。我一直安慰自己扑浸,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布燕偶。 她就那樣靜靜地躺著喝噪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪指么。 梳的紋絲不亂的頭發(fā)上酝惧,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天榴鼎,我揣著相機(jī)與錄音,去河邊找鬼晚唇。 笑死巫财,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哩陕。 我是一名探鬼主播平项,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悍及!你這毒婦竟也來了闽瓢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤心赶,失蹤者是張志新(化名)和其女友劉穎扣讼,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缨叫,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡届谈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弯汰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艰山。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖咏闪,靈堂內(nèi)的尸體忽然破棺而出曙搬,到底是詐尸還是另有隱情,我是刑警寧澤鸽嫂,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布纵装,位于F島的核電站,受9級特大地震影響据某,放射性物質(zhì)發(fā)生泄漏橡娄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一癣籽、第九天 我趴在偏房一處隱蔽的房頂上張望挽唉。 院中可真熱鬧,春花似錦筷狼、人聲如沸瓶籽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽塑顺。三九已至,卻和暖如春俏险,著一層夾襖步出監(jiān)牢的瞬間严拒,已是汗流浹背扬绪。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留裤唠,地道東北人挤牛。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像巧骚,于是被迫代替她去往敵國和親赊颠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361