Hibernate3中使用连接池c3p0遇到的问题

PZhiFeng 2005-02-25 09:25:19
在实际的工作中使用Hibernate3,连接池是一个很重要的环节。在Hibernate3中可以使用第三方c3p0和Proxool。
  我在不使c3p0时,对数据的增删改操作都测试通过。在此基础上,按文档的所述加上c3p0的配置后,可以查询,也可以添加记录,但是抛出了异常。

Problem with checked-in Statement, discarding.
java.lang.NullPointerException
at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431)
at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528)
at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401)
at com.mchange.v2.c3p0.stmt.GooGooStatementCache.refreshStatement(GooGooStatementCache.java:460)
at com.mchange.v2.c3p0.stmt.GooGooStatementCache.checkinStatement(GooGooStatementCache.java:139)
at com.mchange.v2.c3p0.impl.C3P0PooledConnection$1WrapperStatementHelper.doClose(C3P0PooledConnection.java:511)
at com.mchange.v2.c3p0.impl.C3P0PooledConnection$2.close(C3P0PooledConnection.java:570)
at org.hibernate.jdbc.AbstractBatcher.closePreparedStatement(AbstractBatcher.java:369)
at org.hibernate.jdbc.AbstractBatcher.closeStatement(AbstractBatcher.java:178)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:158)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:226)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:271)
at org.hibernate.event.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:24)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:719)
at sample.Hello.saveOrUpdate(Hello.java:43)
at sample.Hello.main(Hello.java:28)


程序代码为:

  Hello_Bean bean = new Hello_Bean(233, "name", "address");
  try {
Session session = HibernateUtil.CurrentSession();//功能为取得一个Session
Transaction tx = session.beginTransaction();
session.save(bean);
session.flush();
//session.saveOrUpdate(bean);
log.info("Insert id = " + bean.getId());
tx.commit();
HibernateUtil.closeSession();
}
catch (Exception e) {
e.printStackTrace();
} 

配置为:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd">

<hibernate-configuration>

<session-factory>
<!--properties-->
<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@172.19.100.29:1521:xxpttest</property>
<property name="hibernate.connection.username">pzf</property>
<property name="hibernate.connection.password">pzf</property>
<property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>



<property name="hibernate.c3p0.min_size">2</property>
<property name="hibernate.c3p0.max_size">5</property>
<property name="hibernate.c3p0.timeout">1800</property>
<property name="hibernate.c3p0.max_statements">50</property>

<!--<property name="hibernate.show_sql">true</property> -->

<!-- Mapping files -->
<mapping resource="sample/Hello_Bean.hbm.xml"/>
<!-- cache settings -->
<class-cache class="sample.Hello_Bean" usage="read-write"/>


</session-factory>

</hibernate-configuration>

敬请各位指点。
...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SynJay 2005-08-31
  • 打赏
  • 举报
回复
非常感激楼上的!啥也不说喽!
PZhiFeng 2005-03-02
  • 打赏
  • 举报
回复
问题解决了,是和JDBC的驱动有关。
PZhiFeng 2005-02-28
  • 打赏
  • 举报
回复
这个问题不回答,回答另一个也行:Hibernate中怎么样直接使用连接池?不要那些绑在Tomcat上的连接池。谢谢了!!
PZhiFeng 2005-02-28
  • 打赏
  • 举报
回复
是不是和JDBC的驱动有关啊?试试看
jspxnet 2005-02-28
  • 打赏
  • 举报
回复
问题不是Hibernate3
你的错误是 java.lang.NullPointerException ,检查你那用了空把

我使用的也是c3p ,没有你这个问题.
我的配置文件


<!-- configuration pool via c3p0 连接池配置 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.max_size">10</property>
<property name="hibernate.c3p0.min_size">1</property>
<property name="hibernate.c3p0.max_statements">0</property>
<property name="hibernate.c3p0.timeout">100</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
PZhiFeng 2005-02-25
  • 打赏
  • 举报
回复
怎么就没人回答呢?难道用Hibernate的同志们都不使用连接池?

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧