From 15c8f00ab3a1e3d2d96b56bae0ec11efedd60231 Mon Sep 17 00:00:00 2001 From: 18516761980 <4761516tqsxp> Date: 星期三, 29 九月 2021 11:14:15 +0800 Subject: [PATCH] # --- src/main/java/com/zy/common/service/erp/ErpSqlServer.java | 122 +++++++++++++++++++++++++++++++++++----- 1 files changed, 107 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/common/service/erp/ErpSqlServer.java b/src/main/java/com/zy/common/service/erp/ErpSqlServer.java index 24b89da..37c7b15 100644 --- a/src/main/java/com/zy/common/service/erp/ErpSqlServer.java +++ b/src/main/java/com/zy/common/service/erp/ErpSqlServer.java @@ -2,9 +2,14 @@ import com.core.common.Cools; import com.zy.common.properties.ErpDbProperties; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; import java.sql.*; import java.util.ArrayList; import java.util.HashMap; @@ -15,11 +20,12 @@ * 绠�鍗曟寔涔呭眰妗嗘灦 * Created by vincent on 2020/11/26 */ +@Slf4j @Service public class ErpSqlServer { // 鏁版嵁搴撹繛鎺� - private Connection conn; +// private Connection conn; // 鍒涘缓棰勭紪璇戣鍙ュ璞★紝涓�鑸兘鏄敤杩欎釜鑰屼笉鐢⊿tatement private PreparedStatement pstm = null; // 鍒涘缓涓�涓粨鏋滈泦瀵硅薄 @@ -61,30 +67,86 @@ /********************************* 鏍稿績灞� *********************************/ /*****************************************************************************/ + private List<Map<String, Object>> executeQuery(String sql) { + Connection conn = null; try { - Connection conn = getConn(); + conn = getConn(); pstm = conn.prepareStatement(sql); rs = pstm.executeQuery(); +// List<Map<String, Object>> maps = convertList(rs); return convertList(rs); } catch (Exception e) { e.printStackTrace(); return null; } finally { release(); + if (conn != null) { + try { + conn.close(); + conn = null; + } catch (SQLException e) { + e.printStackTrace(); + } + } } } - private int executeUpdate(String sql) { + public Number executeQueryCount(String sql, String column) { + Number value = 0; + Connection conn = null; try { - Connection conn = getConn(); + conn = getConn(); pstm = conn.prepareStatement(sql); - return pstm.executeUpdate(); + rs = pstm.executeQuery(); +// ResultSetMetaData metaData = rs.getMetaData(); + while (rs.next()) { + value = (Number) rs.getInt(column); + } + return value; } catch (Exception e) { e.printStackTrace(); return 0; } finally { release(); + if (conn != null) { + try { + conn.close(); + conn = null; + } catch (SQLException e) { + e.printStackTrace(); + } + } + } + } + + private int executeUpdate(String sql) { + Connection conn = null; + try { + conn = getConn(); + if(null != conn) + { + pstm = conn.prepareStatement(sql); + } else { + log.error("鏇存柊ERP涓棿琛ㄥけ璐�===>>鏁版嵁搴撹繛鎺onn涓虹┖"); + log.error("鏇存柊ERP涓棿琛ㄥけ璐�===>>" + sql); + } + return pstm.executeUpdate(); + } catch (Exception e) { + e.printStackTrace(); + log.error("鏇存柊ERP涓棿琛ㄥけ璐�===>>" + sql); + log.error("鏇存柊ERP涓棿琛ㄥけ璐�===>>" + e); + return 0; + } finally { + release(); + if (conn != null) { + try { + conn.close(); + conn = null; + } catch (SQLException e) { + e.printStackTrace(); + } + } } } @@ -102,17 +164,29 @@ return list; } - private Connection getConn() { - if (null == this.conn) { - try { - Class.forName(erpDbProperties.getDriver_class_name()).newInstance(); - this.conn = DriverManager.getConnection(erpDbProperties.getUr(), erpDbProperties.getUsername(), erpDbProperties.getPassword()); - } catch (Exception e) { - e.printStackTrace(); - throw new RuntimeException("鑾峰彇ERP鏁版嵁搴撹繛鎺ュけ璐�"); - } + //synchronized + public Connection getConn() throws SQLException { + Connection conn = null; + try { + Class.forName(erpDbProperties.getDriver_class_name()).newInstance(); + conn = DriverManager.getConnection(erpDbProperties.getUr(), erpDbProperties.getUsername(), erpDbProperties.getPassword()); + } catch (Exception e) { + log.error("鑾峰彇ERP鏁版嵁搴撹繛鎺ュけ璐�"); + e.printStackTrace(); + throw new RuntimeException("鑾峰彇ERP鏁版嵁搴撹繛鎺ュけ璐�"); } - return this.conn; + return conn; +// if (null == this.conn || this.conn.isClosed()) { +// try { +// Class.forName(erpDbProperties.getDriver_class_name()).newInstance(); +// this.conn = DriverManager.getConnection(erpDbProperties.getUr(), erpDbProperties.getUsername(), erpDbProperties.getPassword()); +// } catch (Exception e) { +// log.error("鑾峰彇ERP鏁版嵁搴撹繛鎺ュけ璐�"); +// e.printStackTrace(); +// throw new RuntimeException("鑾峰彇ERP鏁版嵁搴撹繛鎺ュけ璐�"); +// } +// } +// return this.conn; } private void release() { @@ -133,10 +207,28 @@ // if (conn != null) { // try { // conn.close(); +// conn = null; // } catch (SQLException e) { // e.printStackTrace(); // } // } } + /** + * 娣辨嫹璐� + */ + public ArrayList deepClone(List list) throws Exception { + // 搴忓垪鍖� + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + ObjectOutputStream oos = new ObjectOutputStream(bos); + + oos.writeObject(list); + + // 鍙嶅簭鍒楀寲 + ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); + ObjectInputStream ois = new ObjectInputStream(bis); + + return (ArrayList) ois.readObject(); + } + } -- Gitblit v1.9.1