龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Web环境 Hibernate数据源问题补充

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
在Hibernate.cfg.XML中配置的数据源只能在Web环境下使用,我们可以通过下面的例子来比较. 假如我们在HibernateSessionFactory中加上测试,代码如下: package sc.pro.forum.util; import net.sf.hibernate.Hibernat

  在Hibernate.cfg.XML中配置的数据源只能在Web环境下使用,我们可以通过下面的例子来比较.
  
  假如我们在HibernateSessionFactory中加上测试,代码如下:
  package sc.pro.forum.util;
  
  import net.sf.hibernate.HibernateException;
  import net.sf.hibernate.Session;
  import net.sf.hibernate.cfg.Configuration;
  
  /**
  * Configures and provides Access to Hibernate sessions, tied to the
  * current thread of execution. Follows the Thread Local Session
  * pattern, see {@link http://hibernate.org/42.Html}.
  */
  public class HibernateSessionFactory {
  
  /**
  * Location of hibernate.cfg.xml file.
  * NOTICE: Location should be on the classpath as Hibernate uses
  * #resourceAsStream style lookup for its configuration file. That
  * is place the config file in a Java package - the default location
  * is the default Java package.<br><br>
  * Examples: <br>
  * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml".
  * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code>
  */
  private static String CONFIG_FILE_LOCATION = "/hibernate.cfg.xml";
  
  /** Holds a single instance of Session */
  private static final ThreadLocal threadLocal = new ThreadLocal();
  
  /** The single instance of hibernate configuration */
  private static final Configuration cfg = new Configuration();
  
  /** The single instance of hibernate SessionFactory */
  private static net.sf.hibernate.SessionFactory sessionFactory;
  
  /**
  * Returns the ThreadLocal Session instance. Lazy initialize
  * the <code>SessionFactory</code> if needed.
  *
  * @return Session
  * @throws HibernateException
  */
  public static Session currentSession() throws HibernateException {
  Session session = (Session) threadLocal.get();
  
  if (session == null) {
  if (sessionFactory == null) {
  try {
  cfg.configure(CONFIG_FILE_LOCATION);
  sessionFactory = cfg.buildSessionFactory();
  }
  catch (Exception e) {
  System.err.println("%%%% Error Creating SessionFactory %%%%");
  e.printStackTrace();
  }
  }
  session = sessionFactory.openSession();
  threadLocal.set(session);
  }
  
  return session;
  }
  
  /**
  * Close the single hibernate session instance.
  *
  * @throws HibernateException
  */
  public static void closeSession() throws HibernateException {
  Session session = (Session) threadLocal.get();
  threadLocal.set(null);
  
  if (session != null) {
  session.close();
  }
  }
  
  public static void main(String[] args){
  System.out.println("sdfsdfsd");
  try{
  Session session=HibernateSessionFactory.currentSession();
  if(session==null)
  System.out.println("session is null");
  else
  System.out.println("session is not null");
  }catch(Exception e){
  e.printStackTrace();
  }
  }
  
  /**
  * Default constrUCtor.
  */
  private HibernateSessionFactory() {
  }
  
  }
  执行时,程序会给我们如下的错误:
  Environment - Hibernate 2.1.7
  Environment - hibernate.properties not found
  Environment - using CGLIB reflection optimizer
  Environment - using JDK 1.4 java.sql.Timestamp handling
  sdfsdfsd
  Configuration - configuring from resource: /hibernate.cfg.xml
  Configuration - Configuration resource: /hibernate.cfg.xml
  DTDEntityResolver - trying to locate http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd in classpath under net/sf/hibernate/
  DTDEntityResolver - found http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd in classpath
  Configuration - connection.datasource=java:comp/env/jdbc/forum
  Configuration - show_sql=true
  Configuration - dialect=net.sf.hibernate.dialect.SQLServerDialect
  Configuration - null<-org.dom4j.tree.DefaultAttribute@18088c0 [Attribute: name resource value "sc/pro/forum/dao/Userinfo.hbm.xml"]
  Configuration - Mapping resource: sc/pro/forum/dao/Userinfo.hbm.xml
  DTDEntityResolver - trying to locate http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd in classpath under net/sf/hibernate/
  DTDEntityResolver - found http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd in classpath
  Binder - Mapping class: sc.pro.forum.dao.Userinfo -> UserInfo
  Binder - Mapped property: userid -> UserID, type: integer
  Binder - Mapped property: passWord -> password, type: string
  Binder - Mapped property: nickname -> nickname, type: string
  Configuration - Configured SessionFactory: null
  Configuration - properties: {java.runtime.name=Java(TM) 2 Runtime Environment, Standard Edition, sun.boot.library.path=C:Program FilesJavaj2re1.4.2_03in, java.vm.version=1.4.2_03-b02, connection.datasource=java:comp/env/jdbc/forum, java.vm.vendor=Sun Microsystems Inc., java.vendor.url=http://java.sun.com/, path.separator=;, java.vm.name=Java HotSpot(TM) Client VM, file.encoding.pkg=sun.io, user.country=CN, sun.os.patch.level=Service Pack 4, java.vm.specification.name=Java Virtual Machine Specification, user.dir=E:86vrforum, java.runtime.version=1.4.2_03-b02, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:Program FilesJavaj2re1.4.2_03libendorsed, os.arch=x86, java.io.tmpdir=C:DOCUME~1zhangyiLOCALS~1Temp, line.separator=
  , java.vm.specification.vendor=Sun Microsystems Inc., user.variant=, os.name=windows 2000, sun.java2d.fontpath=, hibernate.connection.datasource=java:comp/env/jdbc/forum, java.library.path=C:Program FilesJavaj2re1.4.2_03in;.;C:WINNTsystem32;C:WINNT;C:WINNTsystem32;C:WINNT;C:WINNTSystem32Wbem;d:Program Filescvsnt;D:j2sdk1.4in;C:Program FilesMicrosoft SQL Server80ToolsBINN;C:Program FilesCVSNT, java.specification.name=Java Platform API Specification, java.class.version=48.0, java.util.prefs.PreferencesFactory=java.util.prefs.WindowsPreferencesFactory, os.version=5.0, user.home=C:Documents and Settingszhangyi, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=GBK, java.specification.version=1.4, show_sql=true, user.name=zhangyi, java.class.path=E:86vrforumWebRootWEB-INFclasses;E:86vrforumWebRootWEB-INFlibant-1.5.3.jar;E:86vrforumWebRootWEB-INFlibant-optional-1.5.3.jar;E:86vrforumWebRootWEB-INFlibc3p0-0.8.4.5.jar;E:86vrforumWebRootWEB-INFlibcglib-full-2.0.2.jar;E:86vrforumWebRootWEB-INFlibcommons-collections-2.1.1.jar;E:86vrforumWebRootWEB-INFlibcommons-dbcp-1.2.1.jar;E:86vrforumWebRootWEB-INFlibcommons-lang-1.0.1.jar;E:86vrforumWebRootWEB-INFlibcommons-logging-1.0.4.jar;E:86vrforumWebRootWEB-INFlibcommons-pool-1.2.jar;E:86vrforumWebRootWEB-INFlibconcurrent-1.3.3.jar;E:86vrforumWebRootWEB-INFlibconnector.jar;E:86vrforumWebRootWEB-INFlibdom4j-1.4.jar;E:86vrforumWebRootWEB-INFlibehcache-0.9.jar;E:86vrforumWebRootWEB-INFlibhibernate2.jar;E:86vrforumWebRootWEB-INFlibjaas.jar;E:86vrforumWebRootWEB-INFlibjboss-cache.jar;E:86vrforumWebRootWEB-INFlibjboss-common.jar;E:86vrforumWebRootWEB-INFlibjboss-jmx.jar;E:86vrforumWebRootWEB-INFlibjboss-system.jar;E:86vrforumWebRootWEB-INFlibjcs-1.0-dev.jar;E:86vrforumWebRootWEB-INFlibjdbc2_0-stdext.jar;E:86vrforumWebRootWEB-INFlibjgroups-2.2.7.jar;E:86vrforumWebRootWEB-INFlibjta.jar;E:86vrforumWebRootWEB-INFlibjunit-3.8.1.jar;E:86vrforumWebRootWEB-INFliblog4j-1.2.8.jar;E:86vrforumWebRootWEB-INFlibmsbase.jar;E:86vrforumWebRootWEB-INFlibMSSQLserver.jar;E:86vrforumWebRootWEB-INFlibmsuti
  
精彩图集

赞助商链接