`
cin_ie
  • 浏览: 47335 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

DB link pool

阅读更多
package common.db;


import java.sql.Connection;
import java.sql.Statement;

import org.apache.log4j.Logger;


/**
 * @author 
 */
public class ConnManager
{
    static Logger logger = Logger.getLogger(ConnManager.class);

    private static ConnManager instance; // 唯一实例

    private static int clients = 0;

    /**
     * 建构函数私有以防止其它对象创建本类实例
     */
    private ConnManager() {
    
    }

    /**
     * 返回唯一实例.如果是第一次调用此方法,则创建实例
     * 
     * @return ConnManager 唯一实例
     */
    public static synchronized ConnManager getInstance() {

        if(instance == null) {
            instance = new ConnManager();
            clients++;
        }
        return instance;
    }

    /**
     * 
     * @param name
     *            在属性文件中定义的连接池名字
     * @return Connection 可用连接或null
     */
    public Connection getConn(String dbName) {
    	Connection conn=null;
    	try {
    		conn= DBPool.getPool(dbName).getConnection();
		}
    	catch(Exception e) {
    		e.printStackTrace();
		}
        return conn;
    }

    /**
     * free a connection stmt: conn: a database connection
     */
    public void freeConn(Statement stmt, Connection conn,String dbName) {
        try  {
            if(stmt != null) {
                stmt.close();
            }
        }
        catch(Exception e) {
            logger.error("close Statement is failed:\n"
                    + e.getMessage());
            
            e.printStackTrace();
        }

        try {
        	if(conn!=null) {
        		conn.close();
        		logger.error("---Put connection to pool of "+dbName+" ---");
        	}
        }
        catch(Exception e) {
            logger.error(
                    "close database connention is failed:\n" + e.getMessage());
            e.printStackTrace();
        }
    }
}
分享到:
评论

相关推荐

    swift -> sqlite 操作 引用 sqlite3 库

    - **手动导入**: 下载SQLite3源码,将其添加到Xcode项目中,并在Build Phases中设置Link Binary With Libraries。 2. **初始化SQLite连接**: 使用`GRDB.swift`为例,首先创建一个`DatabasePool`实例,这将打开到...

    tomcat配置数据库连接池

    <ResourceLink name="jdbc/MyDB" global="jdbc/MyDB" type="javax.sql.DataSource"/> ``` 这将把全局的`<Resource>`引用到当前Web应用中。 三、使用数据源 在Java代码中,通过JNDI查找机制获取数据源并创建数据库...

    一步一步配置Oracle Stream

    CREATE DATABASE LINK master_db_link CONNECT TO streams_admin IDENTIFIED BY password USING 'master_db'; ``` 这样就完成了 DBlink 的创建。 ##### 创建流队列 流队列用于存储 Streams 捕捉到的数据更改事件...

    tomcat-数据源配置

    <description>MySQL DB Connection Pool <res-ref-name>jdbc/DBPool <res-type>javax.sql.DataSource <res-auth>Container <res-sharing-scope>Shareable ``` - `description`:对数据源的描述。 - `res-ref-...

    tomcat数据库连接池设置

    <description>MySQL DB Connection Pool <res-ref-name>jdbc/DBPool <res-type>javax.sql.DataSource <res-auth>Container <res-sharing-scope>Shareable ``` 这个配置中,我们设置了数据源参考的描述、名称、...

    2010年oracle命令176页完整版型

    CREATE DATABASE LINK db_link_name CONNECT TO remote_user IDENTIFIED BY remote_password USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=remote_host)(PORT=port_number))(CONNECT_DATA=(SERVER=DEDICATED)...

    H2Database中文教程

    <jdbc-connection-pool name="h2Pool" res-type="javax.sql.DataSource" driver-classname="org.h2.Driver"> ~/test"> <property name="User" value="sa"></property> <property name="Password" value=""></...

    微软内部资料-SQL性能优化2

    OLEDB providers can run in-process or out of process. When running out of process, they run under the context of DLLHOST.EXE. Memory Leak To reserve or commit memory and unintentionally not release ...

    TomCat数据源配置

    out.print("DB connection pool run OK!"); conn.close(); } catch (Exception ex) { out.print(ex.getMessage()); ex.printStackTrace(); } %> ``` 在这个例子中,我们使用`InitialContext`创建了一个JNDI...

    oracle cdc

    - 基于异步在线日志 CDC 进行优化,引入了 DB Link 机制,允许源表和目标表位于不同的数据库实例中。 ##### 归档日志 CDC (Asynchronous Auto Log Archive Change Data Capture Configuration) - 使用归档日志作为...

    oracle 连接数据池

    <ResourceLink name="jdbc/OracleDB" global="jdbc/OracleDB" type="javax.sql.DataSource"/> ``` 这里`global`属性引用了`server.xml`中的资源名称。 4. **应用中获取数据源**:在Java代码中,通过JNDI查找并...

    Tomcat 的数据库连接池设置与应用

    <description>MySQL DB Connection Pool <res-ref-name>jdbc/DBPool <res-type>javax.sql.DataSource <res-auth>Container <res-sharing-scope>Shareable ... ``` 在这里: - `description`:描述数据源的...

    数据源得配置

    其次,DataSource支持连接池(Connection Pool)和分布式事务处理,这大大提高了性能和系统的可扩展性。连接池能够预先创建并管理多个数据库连接,当应用需要时,可以从池中获取连接,用完后再归还,而不是每次请求...

    tomcat数据库连接池的使用

    Tomcat默认使用的是Apache的DBCP(DB Connection Pool)或更现代的C3P0连接池。这两种连接池组件都可以通过修改Tomcat的配置文件来启用和配置。配置主要涉及以下几个步骤: 1. **添加依赖**:首先,确保你的项目...

    oracle复习参考题

    - SHARED_POOL_SIZE: 共享池的大小,包含了PL/SQL代码、解析树等。 3. - DBWn: 数据写进程,负责将数据缓冲区中的更改写入数据文件。 - LGWR: 日志写进程,将日志缓冲区的内容写入重做日志文件。 - SMON: 系统...

    【JavaScript源代码】Node实现搜索框进行模糊查询.docx

    database: setting.mysql.db }); module.exports = pool; ``` ##### 模糊查询逻辑 当用户在前端提交查询请求时,后端需要解析请求参数,并执行SQL语句来查询匹配的数据。 ```javascript app.get('/like', ...

Global site tag (gtag.js) - Google Analytics