⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 connectionmanager.java

📁 社区文章采用的是平板、树形自由选择的两种展示方式
💻 JAVA
字号:
/* 
 * Created on 2007-05-31
 * Last modified on 2007-06-03
 * Powered by YeQiangWei.com
 */
package com.yeqiangwei.club.passport.conn;

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.log4j.Logger;

import com.yeqiangwei.util.Validator;

public class ConnectionManager {

	private static final Logger logger = Logger.getLogger(ConnectionManager.class);
	
	private static ThreadLocal<Connection> threadLocalConnection = new ThreadLocal<Connection>();

	public static Connection getConnection() {
		Connection connection = null;
		if(!Validator.isEmpty(ConnectionCfg.CONFIG.getConn_datasource())){
			try {
				Context context = new InitialContext(); 
				DataSource ds = (DataSource)context.lookup(ConnectionCfg.CONFIG.getConn_datasource());
				connection = ds.getConnection();
			} catch (NamingException e) {
				logger.error(e.toString());
			} catch (SQLException e) {
				logger.error(e.toString());
			}
		}else{
			try {
				Class.forName("net.sourceforge.jtds.jdbc.Driver");
				String gvDriver = ConnectionCfg.CONFIG.getConn_url();
				connection = DriverManager.getConnection(gvDriver
		        		,ConnectionCfg.CONFIG.getConn_username()
		        		,ConnectionCfg.CONFIG.getConn_password());	
			} catch (ClassNotFoundException e) {
				logger.error(e.toString());
			} catch (SQLException e) {
				logger.error(e.toString());
			}
		}
		return connection;
	}

	public static Connection currentConnection(){
		Connection conn = threadLocalConnection.get();
		if(Validator.isEmpty(conn)){
			conn = getConnection();
			threadLocalConnection.set(conn);
		}
		return conn;
	}

	/**
     * 设置关闭方法
     */
    public static void closeConnection(){
    	Connection c = threadLocalConnection.get();
    	threadLocalConnection.set(null);
        try{
            if(c!=null){
            	c.close();
            }
            c = null;
        }catch(Exception e){ 
            logger.error(e.toString());
        }
    }
    
    public static void close(PreparedStatement p){
        try{
            if(p!=null) p.close();
        }catch(Exception e){ 
        	logger.error(e.toString());
        }
    }
    
    public static void close(ResultSet r){
        try{
            if(r!=null) r.close();
        }catch(Exception e){ 
        	logger.error(e.toString());
        }
    }
    
    public static void close(Statement r){
        try{
            if(r!=null) r.close();
        }catch(Exception e){ 
        	logger.error(e.toString()); 
        }
    }
    
    public static void rollBack(Connection con){
    	try {
			con.rollback();
		} catch (SQLException e) {
			logger.error(e.toString());
		}
    }

	public static void close(CallableStatement c) {
		try {
			if(c!=null)
				c.close();
				
		} catch (SQLException e) {
			logger.error(e.toString());
		}
	}
	
	public static void beginTransaction() throws SQLException{
		Connection conn = currentConnection();
		conn.setAutoCommit(false);
	}
	
	public static void commit() throws SQLException{
		Connection conn = currentConnection();
		conn.setAutoCommit(true);
	}
	
	public static void rollback() throws SQLException{
		Connection conn = currentConnection();
		conn.rollback();
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -