Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.47 KB | None | 0 0
  1. public static void operateDocument(String result) throws SQLException, ClassNotFoundException {
  2. // TODO Auto-generated method stub
  3.  
  4.  
  5. OracleDataSource pds;
  6.  
  7. pds = DatabaseConnection.getConnection();
  8.  
  9.  
  10.  
  11. final int batchSize = 1000;
  12. int count = 0;
  13.  
  14. JSONArray json;
  15.  
  16. json = new JSONArray(result);
  17.  
  18. Map<String, List<JSONObject>> orderMongo = new HashMap<>();
  19. Map<String, List<JSONObject>> orderItemMongo = new HashMap<>();
  20.  
  21.  
  22. // Document doc1=new Document();
  23. String key="";
  24. //Gson gson=new Gson();
  25. //BasicDBObject document = new BasicDBObject();
  26. List<JSONObject> nextlist = null;
  27. List<JSONObject> list=null;
  28.  
  29. for (int i = 0; i < json.length(); i++) {
  30.  
  31. JSONObject obj = json.getJSONObject(i);
  32.  
  33. if(obj.getString("table").equals("TEST.S_ORDER")){
  34.  
  35. list = orderMongo.getOrDefault(obj.getJSONObject("after").getString("ROW_ID"),new ArrayList<>());
  36. list.add(obj);
  37. orderMongo.put(obj.getJSONObject("after").getString("ROW_ID"),list);
  38. }
  39. else if(obj.getString("table").equals("TEST.S_ORDER_ITEM")){
  40. nextlist = orderItemMongo.getOrDefault(obj.getJSONObject("after").getString("ROW_ID"),new ArrayList<>());
  41. nextlist.add(obj);
  42. // System.out.println(obj);
  43. // System.out.println(nextlist);
  44. key=obj.getJSONObject("after").getString("ROW_ID");
  45. orderItemMongo.put(key, nextlist);
  46.  
  47. }
  48.  
  49. }
  50.  
  51. Connection con=pds.getConnection("spring_kafka", "Aug2017");
  52. con.setAutoCommit(true);
  53.  
  54. for (Entry<String, List<JSONObject>> entry : orderMongo.entrySet()) {
  55. List<JSONObject> listnext = entry.getValue();
  56. for(JSONObject obj:listnext){
  57. String op_type=obj.optString("op_type");
  58. switch(op_type){
  59. case "I":
  60. pst=con.prepareStatement(insertQuery);
  61. pst.setString(1,obj.getJSONObject("after").optString("STATUS_CD"));
  62. pst.setString(2, obj.getJSONObject("after").optString("ROW_ID"));
  63. pst.setString(3, obj.getJSONObject("after").optString("INTEGRATION_ID"));
  64. pst.setString(4, obj.getJSONObject("after").optString("X_CUST_REF"));
  65. pst.setString(5, obj.getJSONObject("after").optString("REQ_SHIP_DT"));
  66. pst.setString(6, obj.getJSONObject("after").optString("QUOTE_ID"));
  67. pst.setString(7, obj.getJSONObject("after").optString("ACCNT_ID"));
  68. pst.setString(8, obj.getJSONObject("after").optString("ACTIVE_FLG"));
  69. pst.setString(9, obj.getJSONObject("after").optString("PROCESS_TIMESTAMP"));
  70. pst.setString(10, obj.getJSONObject("after").optString("CONTACT_ID"));
  71. pst.setString(11, obj.getJSONObject("after").optString("BU_ID"));
  72. pst.setString(12, obj.getJSONObject("after").optString("SHIP_CON_ID"));
  73. pst.setString(13, obj.getJSONObject("after").optString("LAST_UPD"));
  74. pst.setString(14, obj.getJSONObject("after").optString("X_CLOSE_DT"));
  75. pst.setString(15, obj.getJSONObject("after").optString("X_SUB_STAT"));
  76. pst.setString(16, obj.getJSONObject("after").optString("ORDER_NUM"));
  77. pst.setString(17, obj.getJSONObject("after").optString("SOFT_DELETE"));
  78. pst.setString(18, obj.getJSONObject("after").optString("LAST_UPD_BY"));
  79. pst.setString(19, obj.getJSONObject("after").optString("REV_NUM"));
  80. pst.setString(20, obj.getJSONObject("after").optString("ORDER_DT"));
  81. pst.addBatch();
  82.  
  83. break;
  84. case "U":
  85. pst=con.prepareStatement(updateQuery);
  86. pst.setString(1,obj.getJSONObject("after").optString("STATUS_CD"));
  87. pst.setString(2, obj.getJSONObject("after").optString("INTEGRATION_ID"));
  88. pst.setString(3, obj.getJSONObject("after").optString("X_CUST_REF"));
  89. pst.setString(4, obj.getJSONObject("after").optString("REQ_SHIP_DT"));
  90. pst.setString(5, obj.getJSONObject("after").optString("QUOTE_ID"));
  91. pst.setString(6, obj.getJSONObject("after").optString("ACCNT_ID"));
  92. pst.setString(7, obj.getJSONObject("after").optString("ACTIVE_FLG"));
  93. pst.setString(8, obj.getJSONObject("after").optString("PROCESS_TIMESTAMP"));
  94. pst.setString(9, obj.getJSONObject("after").optString("CONTACT_ID"));
  95. pst.setString(10, obj.getJSONObject("after").optString("BU_ID"));
  96. pst.setString(11, obj.getJSONObject("after").optString("SHIP_CON_ID"));
  97. pst.setString(12, obj.getJSONObject("after").optString("LAST_UPD"));
  98. pst.setString(13, obj.getJSONObject("after").optString("X_CLOSE_DT"));
  99. pst.setString(14, obj.getJSONObject("after").optString("X_SUB_STAT"));
  100. pst.setString(15, obj.getJSONObject("after").optString("ORDER_NUM"));
  101. pst.setString(16, obj.getJSONObject("after").optString("SOFT_DELETE"));
  102. pst.setString(17, obj.getJSONObject("after").optString("LAST_UPD_BY"));
  103. pst.setString(18, obj.getJSONObject("after").optString("REV_NUM"));
  104. pst.setString(19, obj.getJSONObject("after").optString("ORDER_DT"));
  105. pst.setString(20, obj.getJSONObject("after").optString("ROW_ID"));
  106. pst.addBatch();
  107. break;
  108. case "D":
  109. pst=con.prepareStatement(deleteQuery);
  110. pst.setString(1, obj.getJSONObject("after").optString("ROW_ID"));
  111. pst.addBatch();
  112. break;
  113. }
  114.  
  115. if(++count % batchSize == 0) {
  116. pst.executeBatch();
  117. }
  118. pst.executeBatch();
  119. // con.commit();
  120.  
  121.  
  122. pst.close();
  123. }
  124.  
  125. }
  126. //System.out.println(orderMongo);
  127.  
  128.  
  129.  
  130. con.close();
  131.  
  132. Connection secondcon=pds.getConnection("spring_kafka", "Aug2017");
  133. secondcon.setAutoCommit(true);
  134. System.out.println("Starting db op");
  135. for (Entry<String, List<JSONObject>> entry : orderItemMongo.entrySet()) {
  136. List<JSONObject> orderlist = entry.getValue();
  137. for(JSONObject object:orderlist){
  138. String op_type=object.optString("op_type");
  139. switch(op_type){
  140. case "I":
  141. prest=secondcon.prepareStatement(insertItemQuery);
  142. prest.setString(1, object.getJSONObject("after").optString("ASSET_ID"));
  143. prest.setString(2, object.getJSONObject("after").optString("SERV_ACCNT_ID"));
  144. prest.setString(3, object.getJSONObject("after").optString("REQ_SHIP_DT"));
  145. prest.setString(4, object.getJSONObject("after").optString("X_PROD_DESC"));
  146. prest.setString(5, object.getJSONObject("after").optString("SHIP_CON_ID"));
  147. prest.setString(6, object.getJSONObject("after").optString("X_BES_STATUS"));
  148. prest.setString(7, object.getJSONObject("after").optString("ROW_ID"));
  149. prest.setString(8, object.getJSONObject("after").optString("STATUS_CD"));
  150. prest.setString(9, object.getJSONObject("after").optString("ORDER_ID"));
  151. prest.setString(10, object.getJSONObject("after").optString("COMPLETED_DT"));
  152. prest.setString(11, object.getJSONObject("after").optString("LAST_UPD"));
  153. prest.setString(12, object.getJSONObject("after").optString("SOFT_DELETE"));
  154. prest.setString(13, object.getJSONObject("after").optString("INTEGRATION_ID"));
  155. prest.setString(14, object.getJSONObject("after").optString("X_CDD"));
  156. prest.setString(15, object.getJSONObject("after").optString("ACTION_CD"));
  157. prest.setString(16, object.getJSONObject("after").optString("X_ORDER_ITEM_SUBSTATUS"));
  158. prest.setString(17, object.getJSONObject("after").optString("X_APPT_REF"));
  159. prest.setString(18, object.getJSONObject("after").optString("X_CANCELLED_DT"));
  160. prest.setString(19, object.getJSONObject("after").optString("PROD_ID"));
  161. prest.setString(20, object.getJSONObject("after").optString("SERVICE_NUM"));
  162. prest.setString(21, object.getJSONObject("after").optString("MUST_DLVR_BY_DT"));
  163. prest.setString(22, object.getJSONObject("after").optString("ROLLUP_FLG"));
  164. prest.setString(23, object.getJSONObject("after").optString("ROOT_ORDER_ITEM_ID"));
  165. prest.setString(24, object.getJSONObject("after").optString("BILL_ACCNT_ID"));
  166. prest.setString(25, object.getJSONObject("after").optString("PROCESS_TIMESTAMP"));
  167. prest.setString(26, object.getJSONObject("after").optString("QTY_REQ"));
  168. prest.addBatch();
  169. break;
  170. case "U":
  171. prest=secondcon.prepareStatement(updateItemQuery);
  172. prest.setString(1, object.getJSONObject("after").optString("ASSET_ID"));
  173. prest.setString(2, object.getJSONObject("after").optString("SERV_ACCNT_ID"));
  174. prest.setString(3, object.getJSONObject("after").optString("REQ_SHIP_DT"));
  175. prest.setString(4, object.getJSONObject("after").optString("X_PROD_DESC"));
  176. prest.setString(5, object.getJSONObject("after").optString("SHIP_CON_ID"));
  177. prest.setString(6, object.getJSONObject("after").optString("X_BES_STATUS"));
  178. prest.setString(7, object.getJSONObject("after").optString("ORDER_ID"));
  179. prest.setString(8, object.getJSONObject("after").optString("STATUS_CD"));
  180.  
  181. prest.setString(9, object.getJSONObject("after").optString("COMPLETED_DT"));
  182. prest.setString(10, object.getJSONObject("after").optString("LAST_UPD"));
  183. prest.setString(11,object.getJSONObject("after").optString("SOFT_DELETE") );
  184.  
  185. prest.setString(12, object.getJSONObject("after").optString("INTEGRATION_ID"));
  186. prest.setString(13,object.getJSONObject("after").optString("X_CDD") );
  187. prest.setString(14,object.getJSONObject("after").optString("ACTION_CD") );
  188. prest.setString(15,object.getJSONObject("after").optString("X_ORDER_ITEM_SUBSTATUS") );
  189. prest.setString(16, object.getJSONObject("after").optString("X_APPT_REF"));
  190.  
  191. prest.setString(17,object.getJSONObject("after").optString("X_CANCELLED_DT"));
  192. prest.setString(18,object.getJSONObject("after").optString("PROD_ID") );
  193.  
  194. prest.setString(19, object.getJSONObject("after").optString("SERVICE_NUM"));
  195. prest.setString(20, object.getJSONObject("after").optString("MUST_DLVR_BY_DT"));
  196. prest.setString(21, object.getJSONObject("after").optString("ROLLUP_FLG"));
  197. prest.setString(22, object.getJSONObject("after").optString("ROOT_ORDER_ITEM_ID"));
  198. prest.setString(23, object.getJSONObject("after").optString("BILL_ACCNT_ID"));
  199. prest.setString(24, object.getJSONObject("after").optString("PROCESS_TIMESTAMP"));
  200. prest.setString(25, object.getJSONObject("after").optString("QTY_REQ"));
  201. prest.setString(26, object.getJSONObject("after").optString("ROW_ID"));
  202. prest.addBatch();
  203. break;
  204. case "D":
  205. prest=secondcon.prepareStatement(deleteItemQuery);
  206. prest.setString(1,object.getJSONObject("after").optString("ROW_ID"));
  207. prest.addBatch();
  208. break;
  209.  
  210. }
  211. if(++count % batchSize == 0) {
  212. prest.executeBatch();
  213. }
  214. prest.executeBatch();
  215. //secondcon.commit();
  216. prest.close();
  217. }
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224. }
  225.  
  226.  
  227. secondcon.close();
  228.  
  229. System.out.println("Ending db op");
  230.  
  231.  
  232. }
  233.  
  234. OracleDataSource oracleDS =null;
  235. oracleDS=new OracleDataSource();
  236. oracleDS.setDriverType("oracle.jdbc.driver.OracleDriver");
  237. oracleDS.setURL("jdbc:oracle:thin:@localhost:1521:orcl");
  238. oracleDS.setUser("spring_kafka");
  239. oracleDS.setPassword("Aug2017");
  240.  
  241. /*oracleDS.setConnectionCachingEnabled(true);
  242. oracleDS.setConnectionCacheName("MYCACHE");
  243. Properties cacheProps = new Properties();
  244. cacheProps.setProperty("MinLimit", "1");
  245. cacheProps.setProperty("MaxLimit", "500");
  246. cacheProps.setProperty("InitialLimit", "1");
  247. cacheProps.setProperty("ConnectionWaitTimeout", "5");
  248. cacheProps.setProperty("ValidateConnection", "true");
  249. oracleDS.setConnectionCacheProperties(cacheProps);
  250. */
  251.  
  252. /*Connection con=null;
  253. Class.forName("oracle.jdbc.driver.OracleDriver");
  254. con=DriverManager.getConnection("jdbc:oracle:thin:@10.50.84.85:1521:orcl","spring_kafka","Aug2017");*/
  255. return oracleDS;
  256. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement