完整代碼以下:拼湊的代碼,源代碼不知道從哪來的了。見諒!
使用的話直接在本身的service或dao注入java
package com.javafast.util; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidDataSourceFactory; import com.alibaba.druid.pool.DruidPooledConnection; import com.javafast.common.config.Global; import com.javafast.common.utils.PropertiesLoader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; /* * @Desc druid鏈接池 * @Author lisha 2019/5/6 0006 13:37 */ @Component public class DBPoolConnection { private static final Logger log = LoggerFactory.getLogger(DBPoolConnection.class); private static DBPoolConnection dbPoolConnection = null; private static DruidDataSource druidDataSource = null; private static String DB_PROPERTIES = "db_server.properties"; static { // 屬性文件加載對象 PropertiesLoader loader = new PropertiesLoader(DB_PROPERTIES); try { // DruidDataSrouce工廠模式 druidDataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(loader.getProperties()); } catch (Exception e) { log.error("獲取配置失敗"); } } /** * 數據庫鏈接池單例 * @return */ public static synchronized DBPoolConnection getInstance(){ if (null == dbPoolConnection){ dbPoolConnection = new DBPoolConnection(); } return dbPoolConnection; } /** * 返回druid數據庫鏈接 * @return * @throws SQLException */ public DruidPooledConnection getConnection() throws SQLException { return druidDataSource.getConnection(); } /** * 返回druid數據庫鏈接 * @return * @throws SQLException */ public synchronized void closeConnection(Connection conn){ try { if (conn != null){ conn.close(); } log.info("關閉數據庫鏈接成功"); } catch (SQLException e) { e.printStackTrace(); log.error("關閉數據庫鏈接失敗"); } } /** * @param string 配置文件名 * @return Properties對象 */ private static Properties loadPropertiesFile(String fullFile) { String webRootPath = null; if (null == fullFile || fullFile.equals("")){ throw new IllegalArgumentException("Properties file path can not be null" + fullFile); } webRootPath = DBPoolConnection.class.getClassLoader().getResource("").getPath(); webRootPath = new File(webRootPath).getParent(); InputStream inputStream = null; Properties p =null; try { inputStream = new FileInputStream(new File(webRootPath + File.separator + fullFile)); p = new Properties(); p.load(inputStream); } catch (Exception e) { e.printStackTrace(); } finally { try { if (null != inputStream){ inputStream.close(); } } catch (Exception e) { e.printStackTrace(); } } return p; } }
直接使用以下:web
@Autowired private DBPoolConnection connectionPool; public boolean selectStoreIsExistById(String id){ String sql = " select count(*) allCount from store where id = " + id; Connection conn = null; boolean flag = false; try { conn = connectionPool.getConnection(); ResultSet rs = conn.prepareStatement(sql).executeQuery(); int total = -1; if (rs != null) { rs.next(); total = rs.getInt("allCount"); } if (total > 0) { flag = true; } } catch (SQLException e) { e.printStackTrace(); logger.error("查詢供應商信息"); logger.error("sql:" + sql); } finally { connectionPool.closeConnection(conn); } return flag; }