package test;
import java.util.List;
import org.junit.Test;
import com.etone.service.ICacheService;
import com.etone.service.ITaskService;
import com.etone.service.OtSystemServicePortType;
import org.apache.log4j.Logger;
public class UnitTestTools extends JdbcHibernateSupport {
private static final Logger log = Logger.getLogger(UnitTestTools.class);
@Test
public void testJdbc() {
String sql = "select tal.fdiActionNo,tal.fddStartTime"
+ " from TestActionLog tal where 1=1"
+ " and tal.fdiTestItemId=" + 20005099
+ " and tal.fddStartTime>'"
+ "2011-11-3 10:10:38' order by tal.fdiActionNo asc";
log.info("########"+this.getJdbcTemplate());
List list = this.getJdbcTemplate().queryForList(sql);
log.info("################ list.size =" + list.size());
}
public void testCache() {
ICacheService cs = (ICacheService) context.getBean("cacheService");
cs.createBussinessCacheData();
}
public void testTask() {
ITaskService ts = (ITaskService) context.getBean("taskService");
String str = ts.getTestActionLogContent("20005099",
"2011-11-3 10:10:38");
log.info("##########" + str);
}
public void testWs() {
OtSystemServicePortType cs = (OtSystemServicePortType) context
.getBean("wsOtSystemTarget");
cs.getAreaBusinessVoList("1");
}
}
package test;
import javax.sql.DataSource;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.hibernate.FlushMode;
import org.hibernate.HibernateException;
import org.hibernate.JDBCException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.dao.CleanupFailureDataAccessException;
import org.springframework.dao.DataAccessResourceFailureException;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.SessionFactoryUtils;
import org.springframework.orm.hibernate3.SessionHolder;
import org.springframework.transaction.support.TransactionSynchronizationManager;
public class JdbcHibernateSupport {
private static final Logger log = Logger
.getLogger(JdbcHibernateSupport.class);
private HibernateTemplate hibernateTemplate;
private DataSource dataSource;
private SessionFactory sessionFactory;
private static final String path = "WebRoot/WEB-INF/";
private static final String files[] = { "applicationContext-hibernate.xml",
"log4j.properties" };
protected static ApplicationContext context;
public JdbcHibernateSupport() {
context = new FileSystemXmlApplicationContext(path + files[0]);// 加载spring配置文件
PropertyConfigurator.configure(path + files[1]);// 加载log4j配置文件
dataSource = (DataSource) context.getBean("dataSource");// 用于创建JdbcTemplate
sessionFactory = (SessionFactory) context.getBean("sessionFactory");// 用于创建HibernateTemplate
}
public HibernateTemplate getHibernateTemplate() {
return new HibernateTemplate(sessionFactory);
}
public JdbcTemplate getJdbcTemplate() {
return new JdbcTemplate(dataSource);
}
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public DataSource getDataSource() {
return dataSource;
}
public void flushHibernate() {
HibernateCallback hibernateCallback = new HibernateCallback() {
public Object doInHibernate(Session session) {
try {
session.flush();
} catch (HibernateException ex) {
log.error(ex.getMessage(), ex);
}
return null;
}
};
hibernateTemplate.execute(hibernateCallback);
}
protected Session getSession(SessionFactory sessionFactory,
boolean isAllowCreate) throws DataAccessResourceFailureException {
Session session = SessionFactoryUtils.getSession(sessionFactory,
isAllowCreate);
session.setFlushMode(FlushMode.NEVER);
return session;
}
protected void bindResource(Session session, SessionFactory sessionFactory) {
TransactionSynchronizationManager.bindResource(sessionFactory,
new SessionHolder(session));
}
protected void unBindResource(Session session, SessionFactory sessionFactory) {
TransactionSynchronizationManager.unbindResource(sessionFactory);
closeSessionIfNecessary(session, sessionFactory);
}
public void closeSessionIfNecessary(Session session,
SessionFactory sessionFactory)
throws CleanupFailureDataAccessException {
if (session == null
|| TransactionSynchronizationManager
.hasResource(sessionFactory)) {
return;
}
System.out.println("Closing Hibernate session");
try {
session.close();
} catch (JDBCException ex) {
throw new CleanupFailureDataAccessException(
"Could not close Hibernate session", ex.getSQLException());
} catch (HibernateException ex) {
throw new CleanupFailureDataAccessException(
"Could not close Hibernate session", ex);
}
}
}