⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testcase.java

📁 hibernate3.2.6源码和jar包
💻 JAVA
字号:
//$Id: TestCase.java 11282 2007-03-14 22:05:59Z epbernard $package org.hibernate.test.annotations;import java.io.InputStream;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Interceptor;import org.hibernate.cfg.AnnotationConfiguration;import org.hibernate.cfg.Configuration;import org.hibernate.cfg.Environment;import org.hibernate.dialect.Dialect;public abstract class TestCase extends junit.framework.TestCase {	private static SessionFactory sessions;	private static AnnotationConfiguration cfg;	private static Dialect dialect;	private static Class lastTestClass;	private Session session;	public TestCase() {		super();	}	public TestCase(String x) {		super( x );	}	protected void buildSessionFactory(Class[] classes, String[] packages, String[] xmlFiles) throws Exception {		if ( getSessions() != null ) getSessions().close();		try {			setCfg( new AnnotationConfiguration() );			configure( cfg );			if ( recreateSchema() ) {				cfg.setProperty( Environment.HBM2DDL_AUTO, "create-drop" );			}			for ( int i = 0; i < packages.length ; i++ ) {				getCfg().addPackage( packages[i] );			}			for ( int i = 0; i < classes.length ; i++ ) {				getCfg().addAnnotatedClass( classes[i] );			}			for ( int i = 0; i < xmlFiles.length ; i++ ) {				InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream( xmlFiles[i] );				getCfg().addInputStream( is );			}			setDialect( Dialect.getDialect() );			setSessions( getCfg().buildSessionFactory( /*new TestInterceptor()*/ ) );		}		catch (Exception e) {			e.printStackTrace();			throw e;		}	}	protected void setUp() throws Exception {		if ( getSessions() == null || lastTestClass != getClass() ) {			buildSessionFactory( getMappings(), getAnnotatedPackages(), getXmlFiles() );			lastTestClass = getClass();		}	}	protected void runTest() throws Throwable {		try {			super.runTest();			if ( session != null && session.isOpen() ) {				if ( session.isConnected() ) session.connection().rollback();				session.close();				session = null;				fail( "unclosed session" );			}			else {				session = null;			}		}		catch (Throwable e) {			try {				if ( session != null && session.isOpen() ) {					if ( session.isConnected() ) session.connection().rollback();					session.close();				}			}			catch (Exception ignore) {			}			try {				if ( sessions != null ) {					sessions.close();					sessions = null;				}			}			catch (Exception ignore) {			}			throw e;		}	}	public Session openSession() throws HibernateException {		session = getSessions().openSession();		return session;	}	public Session openSession(Interceptor interceptor) throws HibernateException {		session = getSessions().openSession(interceptor);		return session;	}	protected abstract Class[] getMappings();	protected String[] getAnnotatedPackages() {		return new String[]{};	}	protected String[] getXmlFiles() {		return new String[]{};	}	private void setSessions(SessionFactory sessions) {		TestCase.sessions = sessions;	}	protected SessionFactory getSessions() {		return sessions;	}	private void setDialect(Dialect dialect) {		TestCase.dialect = dialect;	}	protected Dialect getDialect() {		return dialect;	}	protected static void setCfg(AnnotationConfiguration cfg) {		TestCase.cfg = cfg;	}	protected static AnnotationConfiguration getCfg() {		return cfg;	}	protected void configure(Configuration cfg) {		//cfg.setNamingStrategy( AlternativeNamingStrategy.INSTANCE );		//cfg.getSessionEventListenerConfig().setFlushEventListener( new EJB3FlushEventListener() );		//cfg.getSessionEventListenerConfig().setAutoFlushEventListener( new EJB3AutoFlushEventListener() );	}	protected boolean recreateSchema() {		return true;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -