`
zhouxingfu520
  • 浏览: 422347 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

简单JPA例子

 
阅读更多

使用jpa  jdk必需在1.5及以上

数据源文件 必需放在src的META-INF文件夹下

 

 

数据源文件配置  数据库采用oracle数据库

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
	xmlns:persistence="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/persistence persistence_1_0.xsd ">

	<persistence-unit name="leamJPA" transaction-type="RESOURCE_LOCAL">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<properties>
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.format_sql" value="false" />
			<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
<property name="hibernate.connection.driver_class" value="oracle.jdbc.driver.OracleDriver" />
			<property name="hibernate.connection.username" value="userName" />
			<property name="hibernate.connection.password" value="password" />
	<property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
			<property name="hibernate.max_fetch_depth" value="3" />
			<property name="hibernate.show_sql" value="true" />
			<property name="hibernate.hbm2ddl.auto" value="update" />
		</properties>
	</persistence-unit>
</persistence>

 持久化对象类

@Entity
@Table(name="tb_person")
public class Person implements java.io.Serializable {
	
	private static final long serialVersionUID = 1L;
        //必需要有id主键  指定PERSONSEQ序列
	@Id @Column(name="id") @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="my_entity_seq_gen")
	@SequenceGenerator(name="my_entity_seq_gen", sequenceName="PERSONSEQ",allocationSize=1)
	private Integer id;
	@Column(name="name",length=30,nullable=false) 
	private String name;
	@Column(name="addTime") 
	
	public Person(){}
	/**
	 * @return the jobtypeid
	 */
	public Integer getId() {
		return id;
	}
	/**
	 * @param jobtypeid the jobtypeid to set
	 */
	public void setJId(Integer id) {
		this.id = id;
	}
	/**
	 * @return the name
	 */
	public String getName() {
		return name;
	}
	/**
	 * @param name the name to set
	 */
	public void setName(String name) {
		this.name = name;
	}

 

创建实体管理器获取数据源

 

public class JPAUtil {
	private static EntityManagerFactory emf;
	static{
		 emf=Persistence.createEntityManagerFactory("leamJPA");
	}
	
	public static EntityManager getEntityManager(){
		return emf.createEntityManager();
	}
}

 

 

测试类 数据库不用建表  会自动创建实体对象类对应的表结构

public class PersonTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test//测试持久
	public void testSave(){
		EntityManager emf=JPAUtil.getEntityManager();
		try{
			EntityTransaction transaction=emf.getTransaction();
			transaction.begin();
			Person ps=new Person();
			ps.setAddTime(new Date());
			ps.setFlag(1);
			ps.setName("jpa测试");
			ps.setOpcode("admin");
			emf.persist(ps);
			transaction.commit();
		}finally{
			if(emf!=null)emf.close();
		}
	}
	
	@Test//测试更新
	public void testUpdate(){
		EntityManager emf=JPAUtil.getEntityManager();
		try{
			EntityTransaction transaction=emf.getTransaction();
			transaction.begin();
			Person ps=emf.getReference(Person.class, 2);
			ps.setAddTime(new Date());
			ps.setFlag(1);
			ps.setName("jpa测试更新222");
			ps.setOpcode("admin");
			emf.merge(ps);
			transaction.commit();
		}
		finally{
			if(emf!=null)emf.close();
		}
	}
	
	@Test//测试获取对象
	public void testGetPerson(){
		EntityManager emf=JPAUtil.getEntityManager();
		try{
			Person ps=emf.find(Person.class, 2);
			System.out.println(ps.getName());
		}
		finally{
			if(emf!=null)emf.close();
		}
	}
	@Test//测试获取多个对象
	public void testGetPersonList(){
		EntityManager emf=JPAUtil.getEntityManager();
		try{
			Query query=emf.createQuery("select p from Person p where id=:id");
			query.setParameter("id", 3);
			@SuppressWarnings("unchecked")
			List<Person> list=query.getResultList();
			for(Person p:list){
				System.out.println(p.getId());
				System.out.println(p.getName());
			}
		}
		finally{
			if(emf!=null)emf.close();
		}
	}
	
	@Test//测试删除
	public void testRemove(){
		EntityManager emf=JPAUtil.getEntityManager();
		try{
			EntityTransaction transaction=emf.getTransaction();
			transaction.begin();
			Person ps=emf.getReference(Person.class, 2);
			emf.remove(ps);
			transaction.commit();
		}
		finally{
			if(emf!=null)emf.close();
		}
	}
	
	
}
 

 

  • JPA.rar (5.2 MB)
  • 下载次数: 217
分享到:
评论

相关推荐

    spring data jpa 例子

    这个"spring data jpa 例子"很可能是包含了一个示例项目,展示了如何在实际应用中集成并使用Spring Data JPA。让我们深入探讨Spring Data JPA的关键概念和用法。 首先,Spring Data JPA的目标是通过提供泛型 ...

    Spring Boot1中使用JPA例子

    我们将通过一个简单的示例来阐述这个过程。 首先,我们需要在项目的`pom.xml`或`build.gradle`文件中引入Spring Boot的JPA依赖。对于Maven项目,可以添加以下依赖: ```xml &lt;groupId&gt;org.springframework.boot ...

    基于JPA的CRUD例子

    **基于JPA的CRUD操作详解** ...这个“基于JPA的CRUD例子”就是对这一特性的简单演示,展示了如何利用JPA进行基本的数据管理。通过深入理解和实践,开发者可以更好地利用JPA来构建高效、可维护的Java应用程序。

    Spring Data JPA 入门例子极简代码

    **Spring Data JPA 入门详解** Spring Data JPA 是 Spring 框架的一个模块,它简化了数据库访问...以上是 Spring Data JPA 入门的例子,如果你想要深入了解,可以参考给定的博客地址或其他相关教程,持续学习和实践。

    Open JPA2 employee 简单例子

    在这个“Open JPA2 employee简单例子”中,我们将深入理解如何使用OpenJPA2来处理数据库中的员工数据。这个示例将帮助初学者掌握基本的JPA概念和OpenJPA2的用法。 首先,我们需要了解JPA的核心概念。JPA允许开发者...

    Spring使用JavaConfig集成JPA简单例子

    这个简单的例子有助于理解Spring与JPA的集成机制,便于在实际项目中灵活运用。更多关于Spring JPA的高级特性和最佳实践,可以在指定的博客链接(http://blog.csdn.net/wu_boy/article/details/72353608)中找到详细...

    jpa简单实例

    在`JPATest`这个例子中,我们可以看到如何进行基本的CRUD(创建、读取、更新、删除)操作: 1. **创建(Create)**: 使用`EntityManager`的`persist()`方法可以将一个新的实体对象插入数据库。 ```java ...

    jpa + hibernate 例子

    通过这个简单的例子,开发者可以了解如何在实际项目中整合JPA和Hibernate,以及如何使用JUnit进行测试,确保数据操作的正确性和应用程序的稳定性。同时,这也是学习ORM框架和Java持久化的一个基础起点。

    spring data jpa简单案例

    **Spring Data JPA 简单案例** Spring Data JPA 是 Spring 框架的一个模块,它为使用 JPA(Java Persistence API)提供了强大的支持,简化了数据访问层的开发。通过使用 Spring Data JPA,我们可以避免编写大量重复...

    Spring4集成JPA和MyBatis3简单例子

    总之,这个简单的例子展示了Spring4如何优雅地整合两个不同的持久化策略,为开发者提供了更大的灵活性。通过掌握这种集成方式,开发者可以更好地根据项目的实际需求选择合适的数据访问技术,提高开发效率和应用性能...

    Spring集成JPA和MyBatis简单例子-20170622

    在IT行业中,Spring框架...在"Spring集成JPA和MyBatis简单例子-20170622"这个压缩包中,可能包含了示例代码,演示了如何在Spring项目中配置和使用这两种技术,这对于初学者理解和实践Spring的集成能力具有很大的帮助。

    Spring集成JPA和MyBatis简单例子

    4. 创建Repository接口:Spring Data JPA允许我们仅通过定义简单的接口就能实现CRUD操作。例如,创建一个继承自JpaRepository的接口,Spring会自动为这个接口生成实现。 5. 注册实体管理工厂:在Spring配置类中,...

    jpa+HIBERNATE的一个简单例子

    以下是一个简单的JPA + Hibernate的例子,展示了如何创建一个实体并进行持久化操作: 1. **定义实体类** ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ...

    openjpa 写的一个例子

    在这个"openjpademo"示例中,我们将会探讨如何利用OpenJPA在Web环境中创建一个简单但实用的应用。 首先,OpenJPA允许开发者将Java对象映射到数据库表,通过这种方式,我们可以使用面向对象的编程方式处理数据,而...

    JPA常用关系实现例子

    JPA通过提供一套API和元数据来描述对象与数据库表之间的映射关系,使得在Java应用中操作数据库变得更为简单。 在这个“JPA常用关系实现例子”中,我们将探讨四种主要的关系类型:一对一(OneToOne)、一对多...

    JPA连接MySQL的例子

    这就是一个基本的JPA连接MySQL的例子。通过这个示例,你可以了解到如何配置JPA,创建实体类,定义Repository接口,以及如何在应用程序中使用这些组件来与MySQL数据库进行交互。当然,实际项目中可能还需要考虑事务...

    JPA学习资料与例子

    JPA的主要目标是为开发者提供一种简单、统一的方式来存取数据库,使得开发人员可以使用面向对象的方式来处理数据库操作,而无需直接编写SQL语句。 在JPA中,我们使用注解来定义实体类(Entity),这些实体类代表...

    Spring Data JPA 笔记

    至于压缩包中的“helloworld”文件,可能是一个简单的示例项目,通常会包含一个基础的Spring Data JPA配置,一个实体类,以及对应的Repository接口,用于展示Spring Data JPA的基本用法。通过查看这个例子,你可以更...

    struts2+spring+jpa整合的完整例子(含分页)

    在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。

Global site tag (gtag.js) - Google Analytics