LOG4J使用Hibernate管理数据库连接
来源:互联网 发布:成都关键词优化外包 编辑:程序博客网 时间:2024/06/01 07:24
LOG4J向数据库中写LOG,而JDBCAppender就得要单独进立数据库连接,而写LOG的操作非常频繁,这样,如果按JDBCAppender的方法要频繁地进行连接断开数据库操作,显然,这不是最理想的。在网上有文章介绍把这个改成数据库连接池的。Hibernate现在在J2EE项目中已经应用相当广泛,下面介绍如何扩展JDBCAppender,用Hibernate的数据库连接。
查看JDBCAppender,我们可以看出,只要重载下面三个方法即可:
protected Connection getConnection() throws SQLException ;
protected void execute(String sql) throws SQLException;
protected void closeConnection(Connection con);
具体实现原码如下所示:
package com.common.util;
import java.sql.Connection;
import java.sql.SQLException;
import org.apache.log4j.spi.ErrorCode;
import org.apache.log4j.spi.LoggingEvent;
public class JDBCConnAppender extends org.apache.log4j.jdbc.JDBCAppender {
/**
* Override 此函数来返回一个hibernate的连接。
*/
protected Connection getConnection() throws SQLException {
return HibernateUtil.currentSession().connection();
}
/**
*执行数据库操作。
*/
protected void execute(String sql) throws SQLException {
Connection con = null;
Statement stmt = null;
try {
con = getConnection();
stmt = con.createStatement();
stmt.execute(sql);
con.commit();
} catch (SQLException e) {
if (stmt != null)
stmt.close();
throw e;
}
stmt.close();
closeConnection(con);
}
/**
*关闭数据库连接。
*/
protected void closeConnection(Connection con) {
try {
if (connection != null && !connection.isClosed())
connection.close();
} catch (SQLException e) {
errorHandler.error("Error closing connection", e,
ErrorCode.GENERIC_FAILURE);
}
}
}
- LOG4J使用Hibernate管理数据库连接
- Log4j 中使用数据库连接池
- Hibernate使用数据库连接池
- Hibernate使用数据库连接池
- Hibernate 使用 log4j
- 关于hibernate使用log4j
- 使用log4j管理日志
- Spring + Hibernate是如何管理数据库连接的
- Spring + Hibernate是如何管理数据库连接的
- spring管理hibernate数据库连接(1)
- spring 及 hibernate 的数据库连接池管理
- hibernate之使用log4j配置文件
- Hibernate使用Log4j日志记录
- 使用log4j进行日志管理
- 怎样在hibernate中使用数据库连接池
- 怎样在hibernate中使用数据库连接池
- 怎样在hibernate中使用数据库连接池
- hibernate设置使用C3P0数据库连接池
- 我的Thinking in Java学习笔记(七)
- 2006年快要过去了
- 2006年年底的项目
- 我的Thinking in Java学习笔记(八)
- 我的Thinking in Java学习笔记(九)
- LOG4J使用Hibernate管理数据库连接
- 转-程序员5000元的北京悲惨生活
- 我的Thinking in Java学习笔记(十)
- 没有SOA,CIO 将面临什么
- join demo yield几句话
- RequisitePro7安装以及数据库的配置和RequisiteWeb的配置
- convert 时间
- 第三一八号病房
- 墨攻及其他