一、hibernate引用数据源配置
在hibernate.cfg.xml文件中添加如下内容:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory name="SessionFactory" > <!-- datasource connection properties --> <property name="connection.datasource">java:comp/env/jdbc/olympic</property> <property name="hibernate.connection.autocommit">true</property> <!-- dialect for Microsoft SQL Server --> <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property> </session-factory> </hibernate-configuration> |
datasource对应server.xml中的数据源名称
二、创建SessionFactory类
import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; public class OlympicSessionFactory { private static Configuration config=null; private static SessionFactory sf=null; public static Session getSession(){ if(sf==null){ if(config==null) config=new Configuration().configure(); sf=config.buildSessionFactory(); } Session s=null; try{ s=sf.getCurrentSession(); }catch(Exception e){} if(s==null) s=sf.openSession(); return s; } public static Transaction getTransaction(){ Transaction tr=getSession().getTransaction(); if(tr==null) tr=getSession().beginTransaction(); if(!tr.isActive()) tr.begin(); return tr; } } |
三、注意
此hibernate的配置文件hibernate.cfg.xml文件存在在src目录下
将Hibernate的包Hibernate.jar放入到classpath中