Hibernate从容器中获得数据源的配置

本文详细介绍了如何在项目中整合Hibernate框架与Web容器连接池,包括server.xml、web.xml及hibernate.cfg.xml的配置方法,并提供了Hibernate工具类的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  啊呀,初次研究这个连接池,搞了多半天,终于稍微有点眉目了。

  就今天我自己总结 的认为,从连接池获取数据库连接,我的上一篇文章总结,那是没有结合Hibernate的使用。

 

  那么,如何结合Hibernate,hibernate如何从web容器连接池获取连接呢?

  步骤如下:

 

1.server.xml中的配置

<Context path="/myweb" docBase="myweb" debug="5" reloadable="true" crossContext="true">
   <Resource name="jdbc/ds" auth="Container" type="javax.sql.DataSource" maxActive="100"
         maxIdle="30" maxWait="10000" username="scott" password="tiger" 
         driverClassName="oracle.jdbc.driver.OracleDriver" 
         url="jdbc:oracle:thin:@localhost:1521:test" />
 
</Context>

  

 

2.web.xml

 

<resource-ref>
  <res-ref-name>jdbc/ds</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>

 

3.hibernate.cfg.xml

 

<session-factory>
  <property name="connection.datasource">java:comp/env/jdbc/ds</property>
 <property name="connection.provider_class">org.hibernate.connection.DatasourceConnectionProvider</property>
 <property name="hibernate.show_sql">true</property>
 <property name="hibernate.hbm2ddl.auto">update</property> 
 <property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>

 <mapping resource="pojo/User.hbm.xml" />
</session-factory>

 

4.

package common.util;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
 public static SessionFactory factory=null;
 static{
  Configuration cfg=new Configuration().configure("/hibernate.cfg.xml");
  factory=cfg.buildSessionFactory();
 }
 public static SessionFactory getSessionFactory(){
  return factory;
 }
 public static Session getSession(){
  Session session=factory.openSession();
  return session;
 }
 public static void closeSession(Session session){
  if(session!=null){
   if(session.isOpen()){
    session.close();
   }
  }
 }
}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值