使用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();
}
}
}
分享到:
相关推荐
这个"spring data jpa 例子"很可能是包含了一个示例项目,展示了如何在实际应用中集成并使用Spring Data JPA。让我们深入探讨Spring Data JPA的关键概念和用法。 首先,Spring Data JPA的目标是通过提供泛型 ...
我们将通过一个简单的示例来阐述这个过程。 首先,我们需要在项目的`pom.xml`或`build.gradle`文件中引入Spring Boot的JPA依赖。对于Maven项目,可以添加以下依赖: ```xml <groupId>org.springframework.boot ...
**基于JPA的CRUD操作详解** ...这个“基于JPA的CRUD例子”就是对这一特性的简单演示,展示了如何利用JPA进行基本的数据管理。通过深入理解和实践,开发者可以更好地利用JPA来构建高效、可维护的Java应用程序。
**Spring Data JPA 入门详解** Spring Data JPA 是 Spring 框架的一个模块,它简化了数据库访问...以上是 Spring Data JPA 入门的例子,如果你想要深入了解,可以参考给定的博客地址或其他相关教程,持续学习和实践。
在这个“Open JPA2 employee简单例子”中,我们将深入理解如何使用OpenJPA2来处理数据库中的员工数据。这个示例将帮助初学者掌握基本的JPA概念和OpenJPA2的用法。 首先,我们需要了解JPA的核心概念。JPA允许开发者...
这个简单的例子有助于理解Spring与JPA的集成机制,便于在实际项目中灵活运用。更多关于Spring JPA的高级特性和最佳实践,可以在指定的博客链接(http://blog.csdn.net/wu_boy/article/details/72353608)中找到详细...
在`JPATest`这个例子中,我们可以看到如何进行基本的CRUD(创建、读取、更新、删除)操作: 1. **创建(Create)**: 使用`EntityManager`的`persist()`方法可以将一个新的实体对象插入数据库。 ```java ...
通过这个简单的例子,开发者可以了解如何在实际项目中整合JPA和Hibernate,以及如何使用JUnit进行测试,确保数据操作的正确性和应用程序的稳定性。同时,这也是学习ORM框架和Java持久化的一个基础起点。
**Spring Data JPA 简单案例** Spring Data JPA 是 Spring 框架的一个模块,它为使用 JPA(Java Persistence API)提供了强大的支持,简化了数据访问层的开发。通过使用 Spring Data JPA,我们可以避免编写大量重复...
总之,这个简单的例子展示了Spring4如何优雅地整合两个不同的持久化策略,为开发者提供了更大的灵活性。通过掌握这种集成方式,开发者可以更好地根据项目的实际需求选择合适的数据访问技术,提高开发效率和应用性能...
在IT行业中,Spring框架...在"Spring集成JPA和MyBatis简单例子-20170622"这个压缩包中,可能包含了示例代码,演示了如何在Spring项目中配置和使用这两种技术,这对于初学者理解和实践Spring的集成能力具有很大的帮助。
4. 创建Repository接口:Spring Data JPA允许我们仅通过定义简单的接口就能实现CRUD操作。例如,创建一个继承自JpaRepository的接口,Spring会自动为这个接口生成实现。 5. 注册实体管理工厂:在Spring配置类中,...
以下是一个简单的JPA + Hibernate的例子,展示了如何创建一个实体并进行持久化操作: 1. **定义实体类** ```java @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) ...
在这个"openjpademo"示例中,我们将会探讨如何利用OpenJPA在Web环境中创建一个简单但实用的应用。 首先,OpenJPA允许开发者将Java对象映射到数据库表,通过这种方式,我们可以使用面向对象的编程方式处理数据,而...
JPA通过提供一套API和元数据来描述对象与数据库表之间的映射关系,使得在Java应用中操作数据库变得更为简单。 在这个“JPA常用关系实现例子”中,我们将探讨四种主要的关系类型:一对一(OneToOne)、一对多...
这就是一个基本的JPA连接MySQL的例子。通过这个示例,你可以了解到如何配置JPA,创建实体类,定义Repository接口,以及如何在应用程序中使用这些组件来与MySQL数据库进行交互。当然,实际项目中可能还需要考虑事务...
JPA的主要目标是为开发者提供一种简单、统一的方式来存取数据库,使得开发人员可以使用面向对象的方式来处理数据库操作,而无需直接编写SQL语句。 在JPA中,我们使用注解来定义实体类(Entity),这些实体类代表...
至于压缩包中的“helloworld”文件,可能是一个简单的示例项目,通常会包含一个基础的Spring Data JPA配置,一个实体类,以及对应的Repository接口,用于展示Spring Data JPA的基本用法。通过查看这个例子,你可以更...
在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。