DataCenterService.java 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. package com.data.datarepo.services;
  2. import com.data.datarepo.domain.DataRepoTable;
  3. import com.data.datarepo.utils.DataSource;
  4. import com.data.datarepo.utils.DataSourceOra;
  5. import com.data.datarepo.utils.EquipmentNo;
  6. import com.mysql.cj.jdbc.MysqlDataSource;
  7. import oracle.jdbc.pool.OracleDataSource;
  8. import java.sql.*;
  9. import java.text.DateFormat;
  10. import java.text.SimpleDateFormat;
  11. import java.util.List;
  12. import java.util.Date;
  13. public class DataCenterService extends DataSourceOra {
  14. EquipmentNo equipmentNo = new EquipmentNo();
  15. DataDeleteService dataDeleteService = new DataDeleteService();
  16. public void insertData(List nameList, String repo_name, List valueList) throws SQLException {
  17. Connection connection = null;
  18. // String selectSQL = "insert into "+repo_name+"("+name+")values ("+value+")";
  19. StringBuilder sb = new StringBuilder();
  20. sb.append("INSERT ALL ");
  21. for (int i = 0; i < valueList.size(); i++) {
  22. sb.append(" INTO " + repo_name + "_OLD (" + nameList.get(i) + ") values (" + valueList.get(i) + ")");
  23. }
  24. sb.append("select * from dual");
  25. String selectSQL = sb.toString();
  26. // System.out.println(selectSQL);
  27. PreparedStatement prepStmt = null;
  28. try {
  29. connection = this.getConn();
  30. prepStmt = connection.prepareStatement(selectSQL);
  31. prepStmt.execute();
  32. } catch (Exception e) {
  33. e.printStackTrace();
  34. } finally {
  35. if (connection != null) {
  36. connection.commit();
  37. connection.close();
  38. }
  39. if (prepStmt != null) {
  40. prepStmt.close();
  41. }
  42. }
  43. }
  44. public void updateData(String num, String repo_name) throws SQLException {
  45. Connection connection = null;
  46. String selectSQL = "update data_sync_table set equipmentNo='" + num + "'where repo_name='" + repo_name + "'";
  47. PreparedStatement prepStmt = null;
  48. try {
  49. MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
  50. connection = basicDS.getConnection();
  51. prepStmt = connection.prepareStatement(selectSQL);
  52. prepStmt.executeUpdate();
  53. } catch (Exception e) {
  54. e.printStackTrace();
  55. } finally {
  56. if (prepStmt != null) {
  57. prepStmt.close();
  58. }
  59. if (connection != null) {
  60. connection.close();
  61. }
  62. }
  63. }
  64. public void insertUpnum(DataRepoTable dataRepoTable) throws SQLException {
  65. Connection connection = null;
  66. String selectSQL = "insert into data_sync_upnum(table_name,repo_name,table_comment,equipmentNo,create_time_str)values (?,?,?,?,NOW())";
  67. PreparedStatement prepStmt = null;
  68. try {
  69. MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
  70. connection = basicDS.getConnection();
  71. prepStmt = connection.prepareStatement(selectSQL);
  72. prepStmt.setString(1, dataRepoTable.getTable_name());
  73. prepStmt.setString(2, dataRepoTable.getRepo_name());
  74. prepStmt.setString(3, dataRepoTable.getTable_comment());
  75. prepStmt.setString(4, dataRepoTable.getUp_num());
  76. prepStmt.executeUpdate();
  77. } catch (Exception e) {
  78. e.printStackTrace();
  79. } finally {
  80. if (prepStmt != null) {
  81. prepStmt.close();
  82. }
  83. if (connection != null) {
  84. connection.close();
  85. }
  86. }
  87. }
  88. public String selectState(String resname, String resvalue, String repo_name, String up_num) throws SQLException {
  89. Connection connection = null;
  90. String selectSQL = "select * from " + repo_name + " where " + resname + "='" + resvalue + "' and UP_NUM='" + up_num + "'";
  91. PreparedStatement prepStmt = null;
  92. String state = "";
  93. try {
  94. // MysqlDataSource basicDS = DataSource.getInstance().getMySqlDS();
  95. connection = this.getConn();
  96. prepStmt = connection.prepareStatement(selectSQL);
  97. ResultSet rs = prepStmt.executeQuery();
  98. if (rs.next()) {
  99. state = "U";
  100. } else {
  101. state = "I";
  102. }
  103. } catch (Exception e) {
  104. e.printStackTrace();
  105. } finally {
  106. if (prepStmt != null) {
  107. prepStmt.close();
  108. }
  109. if (connection != null) {
  110. connection.close();
  111. }
  112. }
  113. return state;
  114. }
  115. public DataRepoTable ora2ora(String repo_name, String up_num) throws SQLException {
  116. DataRepoTable dataRepoTable = new DataRepoTable();
  117. Connection conn = null;
  118. PreparedStatement ps = null;
  119. ResultSet rs = null;
  120. // String num = equipmentNo.getNewEquipmentNo(repo_name, up_num);
  121. dataRepoTable.setUp_num(up_num);
  122. try {
  123. conn = this.getConn();
  124. ps = conn.prepareStatement("select * from " + repo_name + "_OLD where UP_NUM='" + up_num + "'");
  125. rs = ps.executeQuery();
  126. ResultSetMetaData rsmd = rs.getMetaData();
  127. int numberOfColumns = rsmd.getColumnCount();
  128. StringBuilder sb = new StringBuilder();
  129. sb.append("insert into " + repo_name + "_OLD (");
  130. for (int i = 1; i <= numberOfColumns - 1; i++) {
  131. sb.append(rsmd.getColumnName(i) + ",");
  132. }
  133. sb.append("UP_NUM");
  134. sb.append(")values(");
  135. for (int i = 1; i <= numberOfColumns - 1; i++) {
  136. sb.append("?,");
  137. }
  138. sb.append("?");
  139. sb.append(")");
  140. System.out.println(sb.toString());
  141. PreparedStatement pstmt = conn.prepareStatement(sb.toString());
  142. while (rs.next()) {
  143. for (int i = 1; i <= numberOfColumns - 1; i++) {
  144. String value = rs.getString(i);
  145. String name2 = rs.getMetaData().getColumnName(i);
  146. if(name2.equals("AXBE9001")||name2.equals("UPDATETIME")||name2.equals("AHDX6145")
  147. ||name2.equals("AHDX6146")||name2.equals("AHDX6158")||name2.equals("AHDX6177")
  148. ||name2.equals("AHDX6165")||name2.equals("AHDX6174")||name2.equals("AHDX6159")
  149. ||name2.equals("AHAE2493")||name2.equals("AHDX6020")||name2.equals("AXCP0039")
  150. ||name2.equals("AHDP5070")||name2.equals("AHDP5071")||name2.equals("AHDP5112")
  151. ||name2.equals("AHDP5082")||name2.equals("AHDP5102")||name2.equals("AHDP5039")
  152. ||name2.equals("AHDP5040")||name2.equals("AHAE2325")||name2.equals("AHAE2328")
  153. ||name2.equals("AHAE2349")||name2.equals("AXBE0017")||name2.equals("AHAE0041")
  154. ||name2.equals("AHAE5024")){
  155. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  156. Date date = sdf.parse(value);
  157. java.sql.Date startDate=new java.sql.Date(date.getTime());
  158. pstmt.setDate(i, startDate);
  159. continue;
  160. }
  161. pstmt.setString(i, value);
  162. }
  163. pstmt.setObject(numberOfColumns, up_num);
  164. pstmt.addBatch();
  165. }
  166. pstmt.executeBatch();
  167. updateData(up_num, repo_name);
  168. // dataDeleteService.DataDelete(repo_name);//清除oracle中数据
  169. } catch (Exception e) {
  170. System.out.println(e.getMessage());
  171. } finally {
  172. if (conn != null) {
  173. conn.close();
  174. }
  175. if (ps != null) {
  176. ps.close();
  177. }
  178. }
  179. return dataRepoTable;
  180. }
  181. }