`
Sev7en_jun
  • 浏览: 1227650 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
84184fc0-d0b6-3f7f-a3f0-4202acb3caf5
Apache CXF使用s...
浏览量:111479
社区版块
存档分类
最新评论

SSH单元测试代码整理

 
阅读更多
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);
		}
	}

}

 

 

分享到:
评论

相关推荐

    简单易懂的SSH代码

    8. **测试**:学习如何编写单元测试和集成测试,确保代码的正确性。 这个简单的SSH案例是一个很好的起点,对于初学者来说,通过实践这个项目,不仅可以掌握SSH框架的基础用法,还能进一步提升对Java Web开发的理解...

    ssh的jar包分开整理

    在这个“ssh的jar包分开整理”的压缩包中,包含的是这三个框架不同版本的库文件,便于开发者在搭建环境时快速引入所需的依赖。 首先,我们来详细了解一下SSH框架的核心概念: 1. **Struts2**:这是一个基于MVC...

    SSH整合需要的jar包整理

    - `junit.jar`用于单元测试。 在Eclipse中,这些jar包可以通过以下方式导入: 1. 将jar包放入项目的`WEB-INF/lib`目录下。 2. 右键点击项目 -> Build Path -> Configure Build Path -> Libraries -> Add Jars 或 ...

    SSH的笔记整理和重点讲解

    Spring的核心是IoC(Inversion of Control,控制反转),它使得组件间的依赖关系由Spring容器来管理,提高了代码的可测试性和可维护性。马士兵Spring学习笔记2011.doc可能涵盖了Spring的IoC容器、AOP、Bean的生命...

    SSHA整理

    DI使得对象之间的耦合度降低,提高了代码的可测试性和可维护性。AOP则允许我们在不修改原有代码的情况下,插入新的功能,如日志记录、事务管理等。Spring还包含了数据访问、Web、任务调度等多种模块,可以方便地与...

    SSH原理框架图整理.docx

    IOC使得应用程序的配置和依赖关系可以从实际的代码中分离出来,提高了代码的可测试性和可维护性。 - **Spring上下文**:Spring Context是Spring框架的扩展,它提供了一个配置环境,包含了企业服务如JNDI、EJB、电子...

    北大青鸟SSH学习资料

    3. **源代码**:完整的SSH框架项目代码,包括前端页面、后端逻辑、数据库脚本等。 4. **测试报告**:记录测试过程中发现的问题及修复情况,评估系统的稳定性、安全性等方面的表现。 5. **部署手册**:指导如何在生产...

    sshjar包整理

    DI使得对象间的依赖关系得以解耦,提高了代码的可测试性和可维护性。AOP则允许在不修改原有代码的情况下,对程序进行功能增强或日志记录等操作。 1. **Spring MVC**:是Spring框架的一个模块,用于构建Web应用程序...

    非常干净的SSH项目

    这个"非常干净的SSH项目"是一个基于SSH框架的Web应用实例,它已经被精心设计和整理,便于开发者进行二次开发或学术研究。项目使用MySQL数据库,这是一款广泛使用的开源关系型数据库管理系统,以其高可用性、性能和...

    SSH配置手册

    SSH配置手册由罗会明于2010年03月09日整理,旨在提供一套完整的SSH(Struts+Spring+Hibernate)开发平台配置流程,适用于Java开发者。该手册覆盖了从JDK到MyEclipse等软件的安装与配置,是构建SSH开发环境的基础指南...

    java,ssh,数据库面试题整理

    - **编程规范与代码质量**:代码可读性、注释规范、异常处理、单元测试。 面试者应深入理解这些概念,并能通过实际案例展示自己的应用能力。同时,对于SSH框架,理解其核心原理和使用场景是至关重要的。数据库部分...

    ssh框架整合搭建[整理].pdf

    SSH框架整合搭建是软件开发中常见的一种技术实践,它结合了Struts、Spring和Hibernate三个主要的开源框架,用于构建高效、可维护的企业级Web应用。以下是对SSH框架整合搭建的详细步骤和知识点的解析: 1. **Struts...

    SSH开发环境搭建[整理].pdf

    创建简单的Action和视图,如JSP页面,进行测试,确保SSH整合成功。在MyEclipse中可以直接运行项目,通过浏览器访问来查看结果。 9. **最佳实践**: - 使用Maven或Gradle进行依赖管理,保持库文件的最新和一致性。...

    超全的SSH面试题整理

    这样做的好处是降低了对象间的耦合度,提高了代码的灵活性和可测试性。Spring通过两种主要方式实现IOC:setter注入和构造器注入。setter注入是通过setter方法在对象创建后将其依赖注入,而构造器注入则是在对象创建...

    测试工具整理

    - Bullseye:提供代码覆盖率分析,帮助确定测试覆盖了多少代码,以评估测试的全面性。 - Cobertura:Java平台的代码覆盖率工具,可以生成详细的报告,显示哪些代码行已被测试,哪些未被覆盖。 6. 系统监控工具: ...

    自己整理的ssh 最新jar包,

    它通过拦截器机制实现了业务逻辑和展示逻辑的分离,允许开发者自定义行为并实现拦截器链,提高了代码的复用性和可测试性。 **Hibernate4** Hibernate4是ORM框架的代表,它允许开发者用面向对象的方式操作数据库,...

    SSH重点学习笔记(精华)

    这是一份精心整理的SSH学习笔记,涵盖了这三个框架的重点和精华内容。 **Struts**: Struts是一个开源的MVC框架,主要用于构建基于Java EE的Web应用程序。它提供了模型、视图和控制器的分离,使得代码更加清晰,...

Global site tag (gtag.js) - Google Analytics