获取数据库连接对象(包括线程)

/**
 * 负责数据库连接定义的程序类
 * 该类可以负责所有操作线程的数据库连接,利用get()方法可以获得连接对象
 */
public class DatabaseConnection {
    private static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
    private static final String DBURL = "jdbc:oracle:thin:@localhost:1521:orcl" ;
    private static final String USER = "scott" ;
    private static final String PASSWORD = "tiger" ;
    private static ThreadLocal<Connection> threadLocal = new ThreadLocal<Connection>() ;
    /**
     * 负责对外部提供获取的数据库连接对象,该对象通过ThreadLocal获取,如果当前线程没有保存的连接对象,则创建新的连接
     * @return 连接对象
     */
    public static Connection getConnection() {
        Connection conn = threadLocal.get() ;    // 先判断一下在ThreadLocal里是否有连接对象
        if(conn == null) {    // 第一次使用,没有连接,没有连接应该创建一个连接
            conn = connectionDatabase() ;    // 获取连接对象
            threadLocal.set(conn);     // 将刚刚创建好的连接对象保存在ThreadLocal之中
        }
        return conn ;    // 返回连接对象
    }
    /**
     * 进行数据库的关闭处理。
     */
    public static void close() {
        Connection conn = threadLocal.get() ;
        if (conn != null) {    // 现在有连接对象了
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            threadLocal.remove();     // 从当前线程之中删除掉指定连接
        }
    }
    /**
     * 负责创建一个数据库连接对象
     * @return 数据库连接的实例化对象
     */
    private static Connection connectionDatabase() {    // 该方法只能本类调用
        Connection conn = null ;
        try {    // 一旦连接出现了错误,整个程序都无发执行
            Class.forName(DBDRIVER) ;
            conn = DriverManager.getConnection(DBURL, USER, PASSWORD) ;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return conn ;    // 获得数据库连接对象
    }
}
时间: 2024-10-11 06:52:12

获取数据库连接对象(包括线程)的相关文章

获取数据库连接对象的工具类

mysql连接对象 jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/查找的文件jdbc.user=rootjdbc.password=自己设置的密码 oracle连接对象 jdbc.driver=oracle.jdbc.driver.OracleDriverjdbc.url=jdbc:oracle:thin:@localhost:1521:orcljdbc.user=scottjdbc.password=

获取数据库连接对象的方法

public class DBHelper { private static final String url="jdbc:oracle:thin:@localhost:1521:orcl";//连接字符串 private static final String user="nga";//用户名 private static final String password="123";//密码 private static Connection co

DButils工具类可以用来获取数据库连接向数据库插入更新删除对象2

package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.*; import java.lang.reflect.*; import java.sql.*; import java.text.SimpleD

ThreadLocal,LinkedBlockingQueue,线程池 获取数据库连接

<pre name="code" class="java">package com.ctl.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Random; import java.util.concurrent.LinkedBlockingQueue; import java.ut

ThreadLocal,LinkedBlockingQueue,线程池 获取数据库连接2改进

package com.ctl.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Random; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.TimeUnit; import com.ctl.util.ConfigU

Springmvc获取request对象&amp;线程安全

概述:在使用Springmvc开发web系统时,经常要用到request对象来处理请求,比如获取客户端IP地址.请求的url.header中的属性(cookie.授权信息等).body中的数据等.由于Springmvc中的Controller.Service等都是单例的,因此就需要关注request对象是否是线程安全的:当有大量并发请求时,能否保证不同请求/线程中使用不同的request对象.(本文对request的讨论,同样适用于response对象.InputStream/Reader.Ou

Mybatis深入之获取数据库连接

Mybatis深入之获取数据库连接 简介 主要记录Mybatis何时获取数据库连接以及获取数据库连接的过程.难点在于明白在使用Mybatis数据库连接池情况下的数据库连接的获取过程. 何时获取数据库连接 Mybatis只有在真正执行sql操作的时候才会去获取数据库连接.至于如何验证: 不深入源码 简单来讲就是有意将数据库配置信息写成.在一个sql执行过程中看哪一步抛数据库连接异常. public static void main(String[] args) throws Exception {

用C3P0获取连接对象的方法

package gxa.bj.util; import java.sql.Connection;import java.sql.SQLException; import javax.sql.DataSource; import com.mchange.v2.c3p0.ComboPooledDataSource; public class C3P0Connect { private static DataSource ds; // 在线程中创建Connection对象的副本 private sta

JDBC(1)——获取数据库连接

主要讲通过 DriverManager 连接 DriverManager 是驱动的管理类.  1). 可以通过重载的 getConnection() 方法获取数据库连接. 较为方便 2). 可以同时管理多个驱动程序: 若注册了多个数据库连接, 则调用 getConnection()     方法时传入的参数不同, 即返回不同的数据库连接. //1. 准备连接数据库的 4 个字符串. //驱动的全类名. String driverClass = "com.mysql.jdbc.Driver&quo