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

Posted 勇往直前

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取数据库连接对象(包括线程)相关的知识,希望对你有一定的参考价值。

/**
 * 负责数据库连接定义的程序类
 * 该类可以负责所有操作线程的数据库连接,利用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 ;    // 获得数据库连接对象
    }
}

 

以上是关于获取数据库连接对象(包括线程)的主要内容,如果未能解决你的问题,请参考以下文章

如何从片段中的 JSON 响应中的对象获取数据

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

从片段中获取输入数据

jedis连接redis

spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象(代码片段

静态方法内的同步块将获取类级别锁或对象级别锁