91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 8KB
    文件類型: .java
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-12
  • 語言: Java
  • 標簽: JDBC、Druid??

資源簡介

JDBC工具類使用阿里巴巴的數據庫連接池Druid,支持高并發,有多線程環境下的事務和查詢測試。

資源截圖

代碼片段和文件信息

/**
?*?Created?on?2017年8月8日?上午11:36:14?

?*/
package?com.finest.camel.util;

import?java.sql.Connection;
import?java.sql.PreparedStatement;
import?java.sql.ResultSet;
import?java.sql.ResultSetmetaData;
import?java.util.ArrayList;
import?java.util.HashMap;
import?java.util.List;
import?java.util.Map;

import?org.slf4j.Logger;
import?org.slf4j.LoggerFactory;

import?com.alibaba.druid.pool.DruidDataSource;

/**
?*?JDBC線程安全的Druid數據庫連接池工具類.

?*?
?*?@author?hkb?

?*/
public?class?JDBCUtils?{

????/**?日志連接對象?*/
????private?static?final?Logger?log?=?LoggerFactory.getLogger(JDBCUtils.class);
????/**?數據源?*/
????private?static?DruidDataSource?dataSource?=?new?DruidDataSource();
????/**?放置數據庫連接的局部線程變量?*/
????private?static?ThreadLocal?container?=?new?ThreadLocal();

????static?{
????????//?初始化加載數據源配置
????????initDs();
????}

????/**
?????*?初始化
?????*/
????private?static?void?initDs()?{
????????try?{
????????????//?讀取配置文件
????????????String?url?=?PropertyUtils.getProperty(“db.jdbcUrl“);
????????????String?user?=?PropertyUtils.getProperty(“db.user“);
????????????String?password?=?PropertyUtils.getProperty(“db.password“);
????????????String?driverClass?=?PropertyUtils.getProperty(“db.driverClass“);
????????????dataSource.setDriverClassName(driverClass);
????????????dataSource.setUrl(url);
????????????dataSource.setUsername(user);
????????????dataSource.setPassword(password);
????????????//?連接數配置
????????????dataSource.setInitialSize(3);
????????????dataSource.setMinIdle(1);
????????????dataSource.setMaxActive(5);
????????????dataSource.setTestOnBorrow(true);
????????????dataSource.setTestOnReturn(true);
????????????//?destory線程檢測時間隔多久檢測一次連接有效性(單位:毫秒)
????????????dataSource.setTimeBetweenEvictionRunsMillis(30000);
????????????//?連接生存最小時間(單位?:毫秒)
????????????dataSource.setMinEvictableIdleTimeMillis(1500000);
????????????//?for?mysql
????????????dataSource.setPoolPreparedStatements(false);
????????????//?使用心跳語句檢測空閑連接
????????????dataSource.setTestWhileIdle(true);
????????????dataSource.setValidationQuery(“show?status?like?‘%Service_Status%‘;“);
????????????//?斷開重連時間不要設置過短
????????????dataSource.setTimeBetweenConnectErrorMillis(10000);
????????????//?啟用監控統計功能
????????????dataSource.setFilters(“stat“);
????????}?catch?(Exception?e)?{
????????????log.error(“連接池初始化異常,異常信息:“?+?e.getMessage());
????????}

????}

????/**
?????*?獲取連接方法
?????*?
?????*?@return
?????*/
????public?static?Connection?getConnection()?{
????????Connection?conn?=?null;
????????try?{
????????????conn?=?dataSource.getConnection();
????????????container.set(conn);
????????}?catch?(Exception?e)?{
????????????log.error(“獲取數據庫連接異常,異常信息:“?+?e.getMessage());
????????}

????????return?conn;
????}

????/**
?????*?獲取當前線程上的連接開啟事務
?????*/
????public?static?void?startTransaction()?{
????????//?首先獲取當前線程的連接
????????Connection?conn?=?container.get();
????????//?如果連接為空
????????if?(

評論

共有 條評論

相關資源