我每次浏览页面的时候都会log4j 都会报出 这样的代码,,
2006-10-18 15:58:24,421 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]- INFO Loading XML bean definitions from class path resource [applicationContext.xml]
2006-10-18 15:58:24,437 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=27050004]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [DataSource,transactionManager,sessfactoryhibernate,DaoImpl]; root of BeanFactory hierarchy
2006-10-18 15:58:24,468 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO 4 beans defined in application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=27050004]
2006-10-18 15:58:24,468 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@663ec]
2006-10-18 15:58:24,468 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@18a577d]
2006-10-18 15:58:24,468 [org.springframework.beans.factory.support.DefaultListableBeanFactory]- INFO Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [DataSource,transactionManager,sessfactoryhibernate,DaoImpl]; root of BeanFactory hierarchy]
2006-10-18 15:58:24,531 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Diagram -> diagram
2006-10-18 15:58:24,625 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Faq -> faq
2006-10-18 15:58:24,656 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DfUser -> df_user
2006-10-18 15:58:24,687 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.ProductInfo -> product_info
2006-10-18 15:58:24,718 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.News -> news
2006-10-18 15:58:24,734 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.ProductList -> product_list
2006-10-18 15:58:24,781 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Product -> product
2006-10-18 15:58:24,828 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DownloadInfo -> download_info
2006-10-18 15:58:24,859 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Contact -> contact
2006-10-18 15:58:24,890 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DiagramInfo -> diagram_info
2006-10-18 15:58:24,921 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DownloadList -> download_list
2006-10-18 15:58:24,937 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Language -> language
2006-10-18 15:58:24,953 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.ListInfo -> list_info
2006-10-18 15:58:24,968 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.FaqList -> faq_list
2006-10-18 15:58:24,984 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Productinfolist -> productinfolist以上代表什么意思呀!!
出来这些 hibernate 是不是每次调用都会堆mapping 缓存一次呀,因为我看见内存增加的好快呀
..........2006-10-18 15:58:25,109 [org.hibernate.cfg.SettingsFactory]- INFO Deleted entity synthetic identifier rollback: disabled
2006-10-18 15:58:25,109 [org.hibernate.cfg.SettingsFactory]- INFO Default entity-mode: pojo
2006-10-18 15:58:25,140 [org.hibernate.impl.SessionFactoryImpl]- INFO building session factory
2006-10-18 15:58:25,312 [org.hibernate.impl.SessionFactoryObjectFactory]- INFO Not binding factory to JNDI, no JNDI name configured
2006-10-18 15:58:25,359 [org.hibernate.cache.UpdateTimestampsCache]- INFO starting update timestamps cache at region: ehcache.org.hibernate.cache.UpdateTimestampsCache
2006-10-18 15:58:25,359 [org.hibernate.cache.StandardQueryCache]- INFO starting query cache at region: ehcache.org.hibernate.cache.StandardQueryCache
2006-10-18 15:58:25,359 [org.hibernate.impl.SessionFactoryImpl]- INFO Checking 0 named queries
2006-10-18 15:58:25,484 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Closing application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=27050004]
2006-10-18 15:58:25,484 [org.springframework.beans.factory.support.DefaultListableBeanFactory]- INFO Destroying singletons in factory {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [DataSource,transactionManager,sessfactoryhibernate,DaoImpl]; root of BeanFactory hierarchy}
2006-10-18 15:58:25,484 [org.springframework.orm.hibernate3.LocalSessionFactoryBean]- INFO Closing Hibernate SessionFactory
2006-10-18 15:58:25,484 [org.hibernate.impl.SessionFactoryImpl]- INFO closing
在这里我看见连接应该已经关闭了呀
2006-10-18 15:58:24,421 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]- INFO Loading XML bean definitions from class path resource [applicationContext.xml]
2006-10-18 15:58:24,437 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=27050004]: org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [DataSource,transactionManager,sessfactoryhibernate,DaoImpl]; root of BeanFactory hierarchy
2006-10-18 15:58:24,468 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO 4 beans defined in application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=27050004]
2006-10-18 15:58:24,468 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Unable to locate MessageSource with name 'messageSource': using default [org.springframework.context.support.DelegatingMessageSource@663ec]
2006-10-18 15:58:24,468 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Unable to locate ApplicationEventMulticaster with name 'applicationEventMulticaster': using default [org.springframework.context.event.SimpleApplicationEventMulticaster@18a577d]
2006-10-18 15:58:24,468 [org.springframework.beans.factory.support.DefaultListableBeanFactory]- INFO Pre-instantiating singletons in factory [org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [DataSource,transactionManager,sessfactoryhibernate,DaoImpl]; root of BeanFactory hierarchy]
2006-10-18 15:58:24,531 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Diagram -> diagram
2006-10-18 15:58:24,625 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Faq -> faq
2006-10-18 15:58:24,656 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DfUser -> df_user
2006-10-18 15:58:24,687 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.ProductInfo -> product_info
2006-10-18 15:58:24,718 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.News -> news
2006-10-18 15:58:24,734 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.ProductList -> product_list
2006-10-18 15:58:24,781 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Product -> product
2006-10-18 15:58:24,828 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DownloadInfo -> download_info
2006-10-18 15:58:24,859 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Contact -> contact
2006-10-18 15:58:24,890 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DiagramInfo -> diagram_info
2006-10-18 15:58:24,921 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.DownloadList -> download_list
2006-10-18 15:58:24,937 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Language -> language
2006-10-18 15:58:24,953 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.ListInfo -> list_info
2006-10-18 15:58:24,968 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.FaqList -> faq_list
2006-10-18 15:58:24,984 [org.hibernate.cfg.HbmBinder]- INFO Mapping class: com.wang.dao.Productinfolist -> productinfolist以上代表什么意思呀!!
出来这些 hibernate 是不是每次调用都会堆mapping 缓存一次呀,因为我看见内存增加的好快呀
..........2006-10-18 15:58:25,109 [org.hibernate.cfg.SettingsFactory]- INFO Deleted entity synthetic identifier rollback: disabled
2006-10-18 15:58:25,109 [org.hibernate.cfg.SettingsFactory]- INFO Default entity-mode: pojo
2006-10-18 15:58:25,140 [org.hibernate.impl.SessionFactoryImpl]- INFO building session factory
2006-10-18 15:58:25,312 [org.hibernate.impl.SessionFactoryObjectFactory]- INFO Not binding factory to JNDI, no JNDI name configured
2006-10-18 15:58:25,359 [org.hibernate.cache.UpdateTimestampsCache]- INFO starting update timestamps cache at region: ehcache.org.hibernate.cache.UpdateTimestampsCache
2006-10-18 15:58:25,359 [org.hibernate.cache.StandardQueryCache]- INFO starting query cache at region: ehcache.org.hibernate.cache.StandardQueryCache
2006-10-18 15:58:25,359 [org.hibernate.impl.SessionFactoryImpl]- INFO Checking 0 named queries
2006-10-18 15:58:25,484 [org.springframework.context.support.ClassPathXmlApplicationContext]- INFO Closing application context [org.springframework.context.support.ClassPathXmlApplicationContext;hashCode=27050004]
2006-10-18 15:58:25,484 [org.springframework.beans.factory.support.DefaultListableBeanFactory]- INFO Destroying singletons in factory {org.springframework.beans.factory.support.DefaultListableBeanFactory defining beans [DataSource,transactionManager,sessfactoryhibernate,DaoImpl]; root of BeanFactory hierarchy}
2006-10-18 15:58:25,484 [org.springframework.orm.hibernate3.LocalSessionFactoryBean]- INFO Closing Hibernate SessionFactory
2006-10-18 15:58:25,484 [org.hibernate.impl.SessionFactoryImpl]- INFO closing
在这里我看见连接应该已经关闭了呀
解决方案 »
- 建立EJB3工程使用@Entity注释时出现红线报错
- 跪求tokyocabinet.jar这个jar包
- getHibernateTemplate().save(u);不工作了,为什么??
- 急~在线等:Hibernate 映射错误~
- proxool配置数据库连接池出错
- [高手请进]WSAD5.1的诡异行为[50分]
- delphi客户端和java服务器端的通信问题
- weblogic下怎么布署servlet请讲具体点
- 一个JDBC的问题,请进:
- Spring jdbcTemplate() 预编译SQL 查询Mysql timestamp字段不返回结果
- 配置了3个Spring文件springa.xml,springb.xml,springc.xml,如果springa.xml中的某个Bean依赖springb.xml中的某个bean,那我该如何配置sp
- spring+webworks+freemark的组合有前途吗?
下载地址为<a href="http://www.cd-accp.net/web/hbdao.rar">http://www.cd-accp.net/web/hbdao.rar</a>此套件主要用于帮助开发人员在Hibernate环境下开发数据访问层
为了使用此套件,你必须具备JDK1.5(或更高),并且设置你的编译器以支持5.0代码语法
此套件提供以下功能 1.多Hibernate配置文件的支持
2.可嵌套虚拟事务模型的支持
3.事务边界拓展功能的支持
4.事务隔离级别拓展功能的支持
5.数据访问类事务处理自动注入的支持愿我的工作能减轻你的负担, 有问题可以反馈至[email protected], 祝使用愉快!
(接下来的时间里,我将仔细研究.NET的System.Reflect.Emit名字空间以推出NHibernate版本)CSP提示
自本年2月开始,本人开始利用非常宝贵的下班后的休息时间, 开发一套Java Web框架(CSP);目前取得阶段性成果, 不久的将来便可和大家碰面这套Java Web架构提供如下功能 1.服务端的非常像ASP.NET,提供基于视图控件的属性/事件编程模型
2.服务端效防ASP.NET的__VIEWSTATE技术,实现页面的有状态化
3.服务端效防ASP.NET1.1中的模板和数据绑顶功能,以及ASP.NET2.0中的母板功能
4.服务端前台代码使用严格遵循Schema验证的XML书写,Schema验证结构可扩展.支持解析结果的缓冲和热加载功能
5.客户端完全使用Ajax技术实现,所有的UI元素由Javascript动态生成
6.客户端支持__VIEWSTATE隐藏字段信息的拆分和合并,在局部提交的情况下仍然配合全程的服务端工作
7.客户端支持JavaScript文件的按需延迟下载,以达到下载的最小化如果不出意外.不久后此框架会发行面世,届时望四方朋友捧场如果有问题可以反馈到我的信箱[email protected], 谢谢你对本文挡的阅读
陈涛,2006-10-17日于北大青鸟(成都名流)
com.wang.web.IndexAction.handleRequest(IndexAction.java:46)呵呵,action直接调DAO啊(业务层就是DAO层伐?),你的配置文件应该是没有问题的,有时间来看,现标记一个。
源代码
//ConnectionPool.java package com.abner.dbconnector; import java.sql.*; import java.util.*; /** * ConnectionPool 类创建了一个对特定数据库指定大小的连接池。连接池对象 * 允许客户端指定 JDBC 驱动程序,数据库,使用数据库的用户名和密码。而且, * 客户端能指定连接池的在初始创建是产生数据库连接的数量,和指定当连接 * 不够时每次自动增加连接的数量及连接池最多的数据库连接的数量。 * * 对外提供的方法有: ConnectionPool :构造函数 * getInitialConnections: 返回连接池初始化大小 * setInitialConnections: 设置连接池初始化大小 * getIncrementalConnections: 返回连接池自动增加的增量 * setIncrementalConnections: 设置连接池自动增加的大小 * getMaxConnections :获得连接池的最大可允许的连接数 * setMaxConnections :设置连接池的最大可允许的连接数 * getTestTable :获得测试表的名字 * setTestTable :设置测试表的名字 * createPool: 创建连接池 , 线程己同步 * getConnection: 从连接池中获得一个数据库连接 * returnConnection: 返回一个连接到连接池中 * refreshConnections: 刷新连接池 * closeConnectionPool: 关闭连接池 * * * @author abnerchai Email: [email protected] * @version 1.0.0 * */ public class ConnectionPool { private String jdbcDriver = ""; // 数据库驱动 private String dbUrl = ""; // 数据 URL private String dbUsername = ""; // 数据库用户名 private String dbPassword = ""; // 数据库用户密码 private String testTable = ""; // 测试连接是否可用的测试表名,默认没有测试表 private int initialConnections = 10; // 连接池的初始大小 private int incrementalConnections = 5;// 连接池自动增加的大小 private int maxConnections = 50; // 连接池最大的大小 private Vector connections = null; // 存放连接池中数据库连接的向量 , 初始时为 null // 它中存放的对象为 PooledConnection 型 /** * 构造函数 * * @param jdbcDriver String JDBC 驱动类串 * @param dbUrl String 数据库 URL * @param dbUsername String 连接数据库用户名 * @param dbPassword String 连接数据库用户的密码 * */ public ConnectionPool(String jdbcDriver,String dbUrl,String dbUsername,String dbPassword) { this.jdbcDriver = jdbcDriver; this.dbUrl = dbUrl; this.dbUsername = dbUsername; this.dbPassword = dbPassword; } /** * 返回连接池的初始大小 * * @return 初始连接池中可获得的连接数量 */ public int getInitialConnections() { return this.initialConnections; } /** * 设置连接池的初始大小 * * @param 用于设置初始连接池中连接的数量 */
}
}
return conn; // 返回创建的新的数据库连接
}
public synchronized Connection getConnection() throws SQLException { // 确保连接池己被创建 if (connections == null) { return null; // 连接池还没创建,则返回 null }
Connection conn = getFreeConnection(); // 获得一个可用的数据库连接
// 如果目前没有可以使用的连接,即所有的连接都在使用中
while (conn == null){
wait(250);
conn = getFreeConnection(); // 重新再试,直到获得可用的连接,如果
//getFreeConnection() 返回的为 null
// 则表明创建一批连接后也不可获得可用连接
}
return conn;// 返回获得的可用的连接
}
private Connection getFreeConnection() throws SQLException { // 从连接池中获得一个可用的数据库连接 Connection conn = findFreeConnection(); if (conn == null) {
createConnections(incrementalConnections);
conn = findFreeConnection();
if (conn == null) {
return null;
}
}
return conn;
}
private Connection findFreeConnection() throws SQLException {
Connection conn = null;
PooledConnection pConn = null;
// 获得连接池向量中所有的对象
Enumeration enum = connections.elements();
// 遍历所有的对象,看是否有可用的连接
while (enum.hasMoreElements()) {
pConn = (PooledConnection) enum.nextElement();
if (!pConn.isBusy()) {
// 如果此对象不忙,则获得它的数据库连接并把它设为忙
conn = pConn.getConnection();
pConn.setBusy(true);
// 测试此连接是否可用
if (!testConnection(conn)) {
try{
conn = newConnection();
}catch(SQLException e){
System.out.println(" 创建数据库连接失败! "+e.getMessage());
return null;
}
pConn.setConnection(conn);
}
break; // 己经找到一个可用的连接,退出
}
}
return conn;// 返回找到到的可用连接
}
private boolean testConnection(Connection conn) {
try {
// 判断测试表是否存在 if (testTable.equals("")) {
conn.setAutoCommit(true);
} else {// 有测试表的时候使用测试表测试 //check if this connection is valid Statement stmt = conn.createStatement(); stmt.execute("select count(*) from " + testTable); } } catch (SQLException e) { // 上面抛出异常,此连接己不可用,关闭它,并返回 false; closeConnection(conn); return false; } // 连接可用,返回 true return true; }