天天看点

jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息(1)

jdbc数据库连接管理封装工具类,不同使用属性文件配置数据库连接信息

package com.yanek.base.database;

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 org.apache.log4j.logger;

public class connectionmanager {

 static logger logger = logger.getlogger(connectionmanager.class.getname());

 public static void main(string[] args) {

  try {

   system.out.println("conn=" + connectionmanager.getconnection());

  } catch (exception e) {

   // todo auto-generated catch block

   e.printstacktrace();

  }

 }

 private static string poolname = null;

 private static boolean thirdconnectionpoolenabled = false;

 private static object providerlock = new object();

 public connectionmanager() {

 /**

  * 从指定连接池获取数据库连接

  *

  * @param poolname

  *            连接池名称

  * @return

  * @throws sqlexception

  */

 public static connection getconnection(final string poolname)

   throws sqlexception {

   return drivermanager.getconnection(poolname);

   logger.error(e);

   return null;

 public static connection getconnection() throws sqlexception {

  connection conn = null;

   /*

    * //start 连接池 context = new initialcontext(); initialcontext

    * context = new initialcontext(); ds =

    * (datasource)context.lookup("jdbc/oracleds"); conn =

    * ds.getconnection(); //end 连接池

    */

    * //这是odbc方式连接方式 string driver="sun.jdbc.odbc.jdbcodbcdriver";

    * string url="jdbc:odbc:newjchtdb"; string username="sa"; string

    * password="";

    *

   // 这里通过配置文件实现数据库连接参数的设置

   string url = (string) configutil.getconfiginfo().get("url");

   // system.out.println("url100="+url);

   string driver = (string) configutil.getconfiginfo().get("driver");

   // system.out.println("driver="+driver);

   string username = (string) configutil.getconfiginfo().get("user");

   // system.out.println("user="+username);

   string password = (string) configutil.getconfiginfo().get(

     "password");

   // system.out.println("password="+password);

   class.forname(driver);

   conn = drivermanager.getconnection(url, username, password);

   //conn = getconnectionfrompool();

  } catch (sqlexception se) {

   // throw new servletexception(se);

  catch (exception e) {

   conn = null;

  return conn;  

 public static void closeconnection(statement stmt, connection con) {

   if (stmt != null)

    stmt.close();

  closeconnection(con);

 public static void closeconnection(preparedstatement pstmt, connection con) {

   if (pstmt != null)

    pstmt.close();

 public static void closeconnection(callablestatement cstmt, connection con) {

   if (cstmt != null)

    cstmt.close();

 public static void close(callablestatement cstmt, connection con) {

 public static void closeconnection(resultset rs, preparedstatement pstmt,

   connection con) {

  closeresultset(rs);

  closepreparedstatement(pstmt);

 public static void closeconnection(resultset rs, preparedstatement pstmt) {

 public static void close(resultset rs, preparedstatement pstmt) {

 public static void close(resultset rs, preparedstatement pstmt,

 public static void closeconnection(connection con) {

   if (con != null)

    con.close();

 public static void close(connection con) {

 public static void closepreparedstatement(preparedstatement pstmt) {

 public static void close(preparedstatement pstmt) {

 public static void closeresultset(resultset rs) {

   if (rs != null)

    rs.close();

  } catch (sqlexception e) {

  rs = null;

 public static void close(resultset rs) {

 public static connection gettransactionconnection() throws sqlexception {

  connection con = getconnection();

  con.setautocommit(false);

  return con;

    /**

     * 通过连接池获取事务连接

     * @param poolname string

     * @return connection

     * @throws sqlexception

     */

    public static connection gettransactionconnection(final string poolname)

    throws sqlexception

    {

        connection con = getconnection(poolname);

        con.setautocommit(false);

        return con;

    } 

    public static void closetransactionconnection(preparedstatement pstmt, connection con, boolean aborttransaction)

        try

        {

            if(pstmt != null)

                pstmt.close();

        }

        catch(exception e)

            logger.error(e);

        closetransactionconnection(con, aborttransaction);

    }

    public static void closetransactionconnection(resultset rs,preparedstatement pstmt, connection con, boolean aborttransaction)

     closeresultset(rs);

     closepreparedstatement(pstmt);

    public static void closetransactionconnection(connection con, boolean aborttransaction)

        if(con == null)

            return;

            try

            {

                if(aborttransaction)

                    con.rollback();

                else

                    con.commit();

            }

            catch(exception e)

                logger.error(e);

            con.setautocommit(true);

            con.close();

}