Web环境 Hibernate数据源问题补充
在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
精彩图集
精彩文章