首页 > 学院 > 开发设计 > 正文

Web环境 Hibernate数据源问题补充

2019-11-18 12:57:10
字体:
来源:转载
供稿:网友

  在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 Files/Java/j2re1.4.2_03/bin, 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:/86vr/forum, java.runtime.version=1.4.2_03-b02, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:/Program Files/Java/j2re1.4.2_03/lib/endorsed, os.arch=x86, java.io.tmpdir=C:/DOCUME~1/zhangyi/LOCALS~1/Temp/, 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 Files/Java/j2re1.4.2_03/bin;.;C:/WINNT/system32;C:/WINNT;C:/WINNT/system32;C:/WINNT;C:/WINNT/System32/Wbem;d:/Program Files/cvsnt;D:/j2sdk1.4/bin;C:/Program Files/Microsoft SQL Server/80/Tools/BINN;C:/Program Files/CVSNT/, 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 Settings/zhangyi, 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:/86vr/forum/WebRoot/WEB-INF/classes;E:/86vr/forum/WebRoot/WEB-INF/lib/ant-1.5.3.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/ant-optional-1.5.3.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/c3p0-0.8.4.5.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/cglib-full-2.0.2.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/commons-collections-2.1.1.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/commons-dbcp-1.2.1.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/commons-lang-1.0.1.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/commons-logging-1.0.4.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/commons-pool-1.2.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/concurrent-1.3.3.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/connector.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/dom4j-1.4.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/ehcache-0.9.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/hibernate2.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jaas.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jboss-cache.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jboss-common.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jboss-jmx.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jboss-system.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jcs-1.0-dev.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jdbc2_0-stdext.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jgroups-2.2.7.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/jta.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/junit-3.8.1.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/log4j-1.2.8.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/msbase.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/MSSQLserver.jar;E:/86vr/forum/WebRoot/WEB-INF/lib/msuti

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表