`
peacherdiy
  • 浏览: 58057 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JPA_单元测试类

阅读更多

单元测试的时候,繁琐的老是创建 持久工厂,简直受不了,于是乎,有了下面的它 ,

/**
 * 
 * @author hesheng
 *	本地测试基类,不用启动 服务器,
 *  测试数据需要自己模拟
 */
public abstract class BaseTestCase {
	protected EntityManagerFactory emf;
	protected EntityManager entityManager;
	protected static boolean isOpenDB = true;
	
	public boolean isOpenDB() {
		return isOpenDB;
	}
	public void setOpenDB(boolean isOpenDB) {
		this.isOpenDB = isOpenDB;
	}
	@SuppressWarnings("unchecked")
	public void beginTx() {
		emf = Persistence.createEntityManagerFactory("UnitName");
		entityManager = emf.createEntityManager();
		System.out.println("em: " + entityManager);
		entityManager.getTransaction().begin();
	}
	public abstract void test();
	
	public void endTx() {
		entityManager.getTransaction().commit();
		entityManager.close();
		emf.close();
	}
	public void runTest(){
		if(isOpenDB){
			beginTx();
		}
		test();
		if(isOpenDB){
			endTx();
		}
		
		
	}
}

 

具体实现:

public class UnitTest extends BaseTestCase {
	@Override
	public void test() {
		//getLogResultSet();
		super.setOpenDB(false); //测试 JPQL 拼写是否正确的时候,不需连接数据库,因此可以,关闭创建连接,减少时间浪费
		testSql(null,null);
	}
	public String testSql(String logTimeStart,String logTimeEnd){
		String ql = "select  m.pageName,count(m) as count from table m  ";
		int count = 0;
		if (logTimeStart != null){
			//ql = ql + " and";
			count ++;
			ql = ql + " where m.createDate >= ?" + count;
		}
		if (logTimeEnd != null){
			ql = ql + " and";
			count ++;
			ql = ql + " m.createDate <= ?" + count;
		}
		ql = ql + " group by m.pageName";
		System.out.println("ql: "+ql);
		return ql;
	}
	
	public static void main(String[] args) {
		new PageViewCountActionTest().runTest();  // 启动运行类,in eclipse "run as Application"
	}

   

分享到:
评论

相关推荐

    SSH-JPA.ZIP_SSH JPA DAO_java web ssh jpa_jpa_ssh_ssh jpa

    - 测试类:可能包含JUnit测试用例,用于验证DAO或服务层的功能。 - Web应用结构:如WEB-INF目录,包含了web.xml文件,定义了Web应用程序的部署描述符。 - 数据库脚本:创建数据库表的SQL脚本,与JPA实体类对应。 ...

    Spring2.5_JPA_Transaction_Demo

    8. **单元测试**:为了验证事务管理是否正确工作,通常会编写单元测试。测试中,我们可以模拟不同的场景,如正常操作、预期外的异常以及事务边界内的业务逻辑,以此验证事务的隔离性和一致性。 综上所述,"Spring...

    BookCreation_japand_JavaJPA_saidyw7_

    在项目"BookCreation_japand_JavaJPA_saidyw7_"中,开发者可能还使用了其他技术,如Spring Boot来简化项目的初始化和配置,或者使用JUnit进行单元测试,确保代码的正确性。同时,Maven或Gradle作为构建工具,管理...

    GlassfishV4_JPA__EJB_DEMO

    在本案例中,Spring4可能被用来进一步管理Bean的生命周期,增强代码的可测试性,并且可能与JPA和EJB进行集成,提供更灵活的服务调用方式。 【Servlet】是一种Java API,用于创建动态Web应用程序。在描述中提到,...

    spring mvc jpa单元测试例子

    我们可以在`application-test.properties`中配置H2,并在测试类中使用`@Sql`注解来执行SQL脚本,初始化测试数据。 本例子中的项目使用MyEclipse创建,这是一款集成开发环境,支持Maven构建。这意味着项目结构遵循...

    filesystem-master_java_springdatajpa_springboot_hibernate_文件服务器_

    1. **src/main/java**: 包含主应用代码,包括Spring Boot的启动类、配置类以及数据访问层(DAO)、服务层(Service)和控制器层(Controller)。 2. **src/main/resources**: 存放配置文件,如application....

    jbossas7_seamremoting_jpa_小例子

    2. 配置JPA的persistence.xml文件,指定数据库连接信息和使用的持久化单元。 3. 使用Hibernate的Session或EntityManager进行数据的CRUD(创建、读取、更新、删除)操作。 4. 利用Seam Remoting在客户端和服务端之间...

    JPA_002.zip

    JPA通过在Java类上使用注解或XML配置来定义对象与数据库表之间的映射关系,极大地简化了数据库访问。 在这个名为"JPA_002.zip"的压缩包中,我们可以看到与JPA相关的学习资源,这些资源对于理解和实践JPA非常有帮助...

    JSF+Spring+JPA_Hibernate实现_的环境搭建

    7. **配置JPA和Hibernate**:创建实体类,配置数据源,编写persistence.xml文件来指定JPA供应商和数据源。 8. **测试连接**:编写简单的测试用例,确保能够成功连接到数据库并执行CRUD操作。 9. **运行应用**:在...

    D_JPA_01_环境搭建

    JPA通过注解来定义实体类和它们与数据库表的映射。例如,创建一个简单的用户实体类: ```java import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence....

    JPA_2_一对多双向关联关系

    为了测试这个配置,你可以创建一个`Main`类,通过EntityManager进行CRUD操作,展示一对多双向关联的增删改查功能。确保在项目中包含所有必要的JPA依赖,如Hibernate,以及相关的jar包。 总的来说,理解并正确实现...

    Jpa_Basic:Jpa_Basic Inflearn Pracitce

    **Jpa_Basic: Jpa_Basic Inflearn Practice** 在本文中,我们将深入探讨Java ...通过这个实践,你可以掌握如何定义实体、使用Repository、编写服务层和控制器,以及进行单元测试,这些都是Java Web开发中的核心技能。

    spring-boot-中文参考指南.zip_jpa_sprinboot中文_springboot_springboot 中文_

    3. **自动配置**:解析 Spring Boot 如何根据类路径和属性来自动配置你的应用。 4. **起步依赖**:介绍如何使用起步依赖快速添加特定的功能模块。 5. **内嵌Web服务器**:阐述如何在应用中内嵌Web服务器,并配置相关...

    spring+jpa+全局异常+单元测试

    综上所述,"spring+jpa+全局异常+单元测试"这个主题涵盖了Java后端开发中的核心技术和最佳实践。通过有效地整合这些技术,我们可以构建出健壮、易于维护的业务系统,并通过严格的测试确保其质量。

    jpa_test:jpa_test

    **JPA测试详解** 在Java开发中,Java Persistence API(JPA)被广泛用于对象关系映射(ORM),它提供了一种将Java类与数据库表进行绑定的方式,从而简化了数据库操作。本篇将深入探讨JPA的核心概念、使用方法以及在...

    JPA_Basic

    这一标准的核心目标在于为POJO(Plain Old Java Object)提供统一的持久化规范,反映了业界对于脱离容器独立运行、便于开发和测试的趋势的认可。当前,包括Hibernate 3.2、TopLink 10.1.3及OpenJPA在内的多种ORM框架...

    spring_jpa_1

    8. **运行与测试**:讲解如何运行Spring Boot应用,以及如何编写单元测试或集成测试来验证Spring JPA的功能。 9. **查询增强**:除了基础的CRUD操作,Spring Data JPA还支持自定义查询方法,通过方法名自动转换为...

    08_JPA详解_分析JPA与持久化实现产品对接的源代码.zip

    5. **集成测试**: 为了确保JPA的正确性,源代码可能包含了一些测试用例,展示了如何在测试环境中设置和使用JPA。 通过对这些源代码的深入理解和实践,开发者可以更好地掌握JPA的使用,以及如何根据项目需求选择合适...

Global site tag (gtag.js) - Google Analytics