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);
        }
    }
   
   
   
}

目录
相关文章
|
27天前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
1月前
|
JSON 关系型数据库 数据库
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
【python】Python将100个PDF文件对应的json文件存储到MySql数据库(源码)【独一无二】
|
6天前
|
数据库
将连接数据库封装成类
在idea里将连接数据库封装成类
|
6天前
|
安全 数据管理 数据库
数据管理DMS操作报错合集之阿里云DMS控制台上展示出了已经删除的数据库信息,如何解决
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
11天前
|
NoSQL MongoDB 数据库
MongoDB数据恢复—MongoDB数据库文件被破坏的数据恢复案例
服务器数据恢复环境: 一台Windows Server操作系统服务器,服务器上部署MongoDB数据库。 MongoDB数据库故障&检测: 工作人员在未关闭MongoDB数据库服务的情况下,将数据库文件拷贝到其他分区。拷贝完成后将原MongoDB数据库所在分区进行了格式化操作,然后将数据库文件拷回原分区,重新启动MongoDB服务,服务无法启动。
|
17天前
|
存储 关系型数据库 MySQL
如何处理爬取到的数据,例如存储到数据库或文件中?
处理爬取的数据,可存储为txt、csv(适合表格数据)或json(适合结构化数据)文件。若需存储大量数据并执行复杂查询,可选择关系型(如MySQL)或非关系型(如MongoDB)数据库。以MySQL为例,需安装数据库和Python的pymysql库,创建数据库和表,然后编写Python代码进行数据操作。选择存储方式应考虑数据类型、数量及后续处理需求。
21 1
|
25天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
1月前
|
网络协议 数据库连接 网络安全
DM数据库连接数据库时报:创建sokect连接失败
DM数据库连接数据库时报:创建sokect连接失败
14 0
|
4月前
|
SQL Java 关系型数据库
MySQL之JDBC(二)
MySQL之JDBC(二)
34 0
|
4月前
|
关系型数据库 MySQL Java
MySQL之JDBC(一)
MySQL之JDBC
35 0