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 {
  try {
   return DriverManager.getConnection(poolName);
  } catch (Exception e) {
   logger.error(e);
   return null;
  }
 }

 public static Connection getConnection() throws SQLException {
  
  
  Connection conn = null;
  try {
   /*
    * //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) {
   e.printStackTrace();
   conn = null;

  }
  return conn;  
  

 }

 public static void closeConnection(Statement stmt, Connection con) {
  try {
   if (stmt != null)
    stmt.close();
  } catch (Exception e) {
   logger.error(e);
  }
  closeConnection(con);
 }

 public static void closeConnection(PreparedStatement pstmt, Connection con) {
  try {
   if (pstmt != null)
    pstmt.close();
  } catch (Exception e) {
   logger.error(e);
  }
  closeConnection(con);
 }

 public static void closeConnection(CallableStatement cstmt, Connection con) {
  try {
   if (cstmt != null)
    cstmt.close();
  } catch (Exception e) {
   logger.error(e);
  }
  closeConnection(con);
 }

 public static void close(CallableStatement cstmt, Connection con) {
  try {
   if (cstmt != null)
    cstmt.close();
  } catch (Exception e) {
   logger.error(e);
  }
  closeConnection(con);
 }

 public static void closeConnection(ResultSet rs, PreparedStatement pstmt,
   Connection con) {
  closeResultSet(rs);
  closePreparedStatement(pstmt);
  closeConnection(con);
 }

 public static void closeConnection(ResultSet rs, PreparedStatement pstmt) {
  closeResultSet(rs);
  closePreparedStatement(pstmt);
 }

 public static void close(ResultSet rs, PreparedStatement pstmt) {
  closeResultSet(rs);
  closePreparedStatement(pstmt);
 }

 public static void close(ResultSet rs, PreparedStatement pstmt,
   Connection con) {
  closeResultSet(rs);
  closePreparedStatement(pstmt);
  closeConnection(con);
 }

 public static void closeConnection(Connection con) {
  try {
   if (con != null)
    con.close();
  } catch (Exception e) {
   logger.error(e);
  }
 }

 public static void close(Connection con) {
  try {
   if (con != null)
    con.close();
  } catch (Exception e) {
   logger.error(e);
  }
 }

 public static void closePreparedStatement(PreparedStatement pstmt) {
  try {
   if (pstmt != null)
    pstmt.close();
  } catch (Exception e) {
   logger.error(e);
  }
 }

 public static void close(PreparedStatement pstmt) {
  try {
   if (pstmt != null)
    pstmt.close();
  } catch (Exception e) {
   logger.error(e);
  }
 }

 public static void closeResultSet(ResultSet rs) {
  try {
   if (rs != null)
    rs.close();
  } catch (SQLException e) {
   logger.error(e);
  }
  rs = null;
 }

 public static void close(ResultSet rs) {
  try {
   if (rs != null)
    rs.close();
  } catch (SQLException e) {
   logger.error(e);
  }
  rs = null;
 }

 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);
        closeTransactionConnection(con, abortTransaction);
    }

    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);
            }
        try
        {
            con.setAutoCommit(true);
        }
        catch(Exception e)
        {
            logger.error(e);
        }
        try
        {
            con.close();
        }
        catch(Exception e)
        {
            logger.error(e);
        }
    }
   
   
   
}

目录
相关文章
|
3月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
356 93
|
6月前
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
251 1
|
3月前
|
Ubuntu 安全 关系型数据库
安装与配置MySQL 8 on Ubuntu,包括权限授予、数据库备份及远程连接指南
以上步骤提供了在Ubuntu上从头开始设置、配置、授权、备份及恢复一个基础但完整的MySQL环境所需知识点。
415 7
|
3月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
554 5
|
5月前
|
SQL XML Java
配置Spring框架以连接SQL Server数据库
最后,需要集成Spring配置到应用中,这通常在 `main`方法或者Spring Boot的应用配置类中通过加载XML配置或使用注解来实现。
446 0
|
Java 关系型数据库 MySQL
mysql5.7 jdbc驱动
遵循上述步骤,即可在Java项目中高效地集成MySQL 5.7 JDBC驱动,实现数据库的访问与管理。
2533 1
|
SQL druid Java
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
191 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(下)
|
SQL Java 关系型数据库
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)
589 3
Java数据库部分(MySQL+JDBC)(二、JDBC超详细学习笔记)(上)
|
SQL 分布式计算 关系型数据库
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-24 Sqoop迁移 MySQL到Hive 与 Hive到MySQL SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
326 0
|
SQL 分布式计算 关系型数据库
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
Hadoop-23 Sqoop 数据MySQL到HDFS(部分) SQL生成数据 HDFS集群 Sqoop import jdbc ETL MapReduce
201 0

热门文章

最新文章