package junit.test;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.sql.DataSource;
import junit.framework.Assert;
import junit.framework.TestCase;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.itcast.bean.product.ProductType;
import com.itcast.service.product.ProductTypeService;
import com.itcast.util.QueryResult;
public class ProductTest extends TestCase {
/**
* jpa未和spring集成整合之前的测试方法,会扫描所有的实体类,生成所有的数据表(标记为entity的类)
*/
public void test(){
Persistence.createEntityManagerFactory("itcast");
}
/**
* jpa未和spring集成整合之前的测试方法,该方法将生成一条记录
*/
public void test1(){
EntityManagerFactory factory = Persistence.createEntityManagerFactory("itcast");
EntityManager em = factory.createEntityManager();
em.getTransaction().begin();
em.persist(new ProductType());
em.getTransaction().commit();
em.close();
factory.close();
}
/**
* jpa未和spring集成整合之后的测试方法
*/
public void test2(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
ProductType type = new ProductType();
type.setName("瑜伽用品");
type.setNote("好产品");
productService.save(type);
}
//测试spring 和 jpa是否集成好了
public void test3(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
DataSource dataSource = (DataSource)ctx.getBean("dataSource");
System.out.println("================="+ dataSource);
}
public void test4(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
//这里的bean productService在beans.xml文件是不存在的,但是通过ProductServiceBean.java里的@Service注释也是可以的
ProductTypeService productService = (ProductTypeService)ctx.getBean("productServiceBean");
productService.save(new ProductType());
}
public void testSave(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
for(int i =1;i<20;i++){
ProductType type = new ProductType();
type.setName("足球"+i);
type.setNote("好产品");
type.setVisible(true);
productService.save(type);
}
}
public void testFind(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
ProductType type = productService.find(ProductType.class, 1);
Assert.assertNotNull("获取不到id为1的记录",type);//当type为Null时,打印出“获取不到id为1的记录”这句话
System.out.println("================typeid:=" + type.getTypeid() +"============type.name :" + type.getName());
}
public void testUpdate(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
ProductType type = productService.find(ProductType.class, 1);
type.setName("篮球");
productService.update(type);
}
public void testDel(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
productService.delete(ProductType.class,new Object[]{3,4,5});
}
public void testQueryResult(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
QueryResult<ProductType> qr = productService.getScrollData(ProductType.class,3,6);
List<ProductType> list = qr.getResultList();
for(Iterator iter = list.iterator();iter.hasNext();){
ProductType pt = (ProductType)iter.next();
System.out.println("=======typeid: " + pt.getTypeid() + "===========name: " + pt.getName());
}
}
public void testQueryResultOrderby(){
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
ProductTypeService productService = (ProductTypeService)ctx.getBean("productTypeServiceBean");
LinkedHashMap<String,String> lhmap = new LinkedHashMap<String,String> ();
lhmap.put("visible", "asc");
//QueryResult<ProductType> qr = productService.getScrollData(ProductType.class,0,4);
QueryResult<ProductType> qr = productService.getScrollData(ProductType.class,"o.visible=?1",
new Object[]{true},0,10,lhmap);
List<ProductType> list = qr.getResultList();
System.out.println("=======count is:" + qr.getTotalrecord());
for(Iterator iter = list.iterator();iter.hasNext();){
ProductType pt = (ProductType)iter.next();
System.out.println("=======visible: " + pt.getVisible() + "===========name: " + pt.getName());
}
}
}
分享到:
相关推荐
Spring 是一个强大的轻量级应用框架,而 OpenJPA 是一个开源的 Java Persistence API (JPA) 实现,它允许开发者将对象关系映射(ORM)功能无缝集成到应用程序中。在本文中,我们将深入探讨如何将 Spring 框架与 Open...
**JPA(Java Persistence API)** 是Java平台上的一个标准,用于管理关系数据库中的数据,它简化了在Java应用程序中处理持久性的工作。JPA通过提供对象/关系映射(ORM)工具,允许开发人员将Java类与数据库表进行...
Struts2、JPA和Spring的整合充分利用了各自的优势,构建了一个高效、灵活的Java Web应用架构。Struts2处理用户请求和视图跳转,Spring提供依赖管理和事务控制,而JPA则负责数据持久化。这种整合方式大大简化了开发...
"Maven构建的JPA+Spring"是一个基于Java的项目,利用Maven作为构建工具,集成Spring框架和Java Persistence API(JPA)来管理数据库操作。这个演示工程旨在展示如何有效地结合这三个核心技术,为开发者提供一个快速...
综上所述,这个项目模板结合了JPA、Spring 3和Tiles三大组件,为开发者提供了一个完整的、基于Java的企业级应用开发基础,简化了开发流程并提高了代码的组织性和可维护性。通过学习和使用这个模板,开发者可以快速...
在本项目中,我们主要探讨如何手动构建一个基于SpringMVC、Spring Data JPA、Hibernate以及FreeMarker模板引擎的Maven工程,同时实现环境切换功能。这个基础框架为日常开发工作提供了必要的支持。 首先,SpringMVC...
为了与Spring集成,需要配置Struts的Spring插件,使得Action实例由Spring容器管理。 集成后的步骤: 1. 创建项目结构,包括src/main/java、src/main/resources和src/main/webapp目录。 2. 在`web.xml`中配置Spring...
2. **Hibernate**:Hibernate是JPA的一个实现,它提供了一套强大的ORM工具,包括对象-关系映射、查询语言(HQL)和事件处理机制。 3. **Spring JPA支持**:Spring框架提供了对JPA的全面支持,包括自动配置、事务...
在Spring MVC和JPA的开发过程中,单元测试是不可或缺的一部分,它可以帮助我们验证代码的正确性,确保系统各个部分能够按预期工作。本例子聚焦于使用Spring的Test注解进行事务管理的单元测试,这对于数据库操作尤其...
在这个名为“springDataJpa测试demo”的项目中,我们看到它是一个基于Maven构建的工程,目的是演示如何在Spring应用中集成并测试Spring Data JPA的功能。这里我们将详细探讨Spring Data JPA以及与Maven和MySQL数据库...
Spring Data JPA是Spring框架的一个子项目,它简化了与JPA的集成,提供了更高级别的抽象,使得数据库操作更加便捷。 全局异常处理是任何应用都应该具备的重要特性,它可以统一捕获和处理程序中可能出现的异常,避免...
6. **项目结构**:一个典型的Struts2+Spring+JPA项目会包含以下几个主要部分:Web-INF下的`web.xml`和`struts.xml`,`src/main/resources`下的`applicationContext.xml`和`persistence.xml`,以及`src/main/java`下...
Struts、JPA和Spring是Java开发中三个非常重要的框架,它们各自负责应用程序的不同层面:Struts用于控制层,Spring提供了全面的框架支持,包括依赖注入和面向切面编程,而JPA则是Java持久化规范,用于管理数据库操作...
本项目“SpringMVC+Spring+Spring-Data-JPA整合-完整Demo”旨在提供一个全面的示例,展示如何将SpringMVC、Spring和Spring Data JPA这三个关键模块集成到一个应用程序中。下面,我们将深入探讨这些技术及其整合的...
3. 测试友好:Spring的测试框架支持对JPA的单元测试,提高了测试效率。 三、核心概念 1. Entity:表示数据库表的Java类,通过@Entity注解标识。 2. EntityManager:JPA的主要工作接口,用于持久化操作,如保存、...
总的来说,这个例子提供了一个很好的学习平台,让你深入理解Struts2、Spring和JPA的集成,以及它们在实际开发中的作用。通过实践,你可以掌握如何利用这些框架提高开发效率,同时也可以了解到企业级应用中的一些最佳...
Spring Data JPA 是一个强大的框架,它简化了与Java Persistence API (JPA) 的交互,使得在Spring应用程序中处理数据库操作变得更加便捷。本项目“springData-jpa-demo”旨在提供一个示例,帮助开发者理解如何在实践...