`
xiaolongfeixiang
  • 浏览: 237060 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

JavaSE使用JPA简单案例:

    博客分类:
  • EJB3
阅读更多

JavaSE使用JPA简单案例:

 

使用的JPA提供者是openjpa.


首先,新建一个普通的Java工程;

 

然后,导入openjpa所需要的jar包、数据库的驱动类、javaee.jar

 

(因为包含javax.persistence.*的API),见下图:

 

 

接着编写EntityBean:

 

package study.entity;

import javax.persistence.Id;

import java.io.Serializable;

import javax.persistence.*;

@SuppressWarnings("serial")
@Entity
public class Person implements Serializable{

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	private int id;
	
	private String name;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}
 

然后是编写DAO吧,其实我更喜欢称为Service:

 

package study.service;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import study.entity.Person;

public class PersonManagerImpl implements PersonManager {

	@Override
	public Person getPerson(int personId) {

		EntityManagerFactory emf = Persistence
				.createEntityManagerFactory("helloworld");

		EntityManager manager = emf.createEntityManager();

		Person person = manager.find(Person.class, personId);

		manager.close();
		emf.close();
		return person;
	}

	@Override
	public void addPerson(Person person) {
		EntityManagerFactory emf = Persistence
				.createEntityManagerFactory("helloworld");

		EntityManager manager = emf.createEntityManager();
		manager.getTransaction().begin();
		manager.persist(person);
		manager.getTransaction().commit();
		
		manager.close();
		emf.close();
	}

}

 

在src下新建一个META-INF目录,在该目录中新建一个persistence.xml文件:

 

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="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
    http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
	version="1.0">

	<persistence-unit name="helloworld" transaction-type="RESOURCE_LOCAL">
		<provider>
             org.apache.openjpa.persistence.PersistenceProviderImpl
 	        </provider>
		<class>study.entity.Person</class>
		<properties>
			<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/firstjpa" />
			<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
			<property name="openjpa.ConnectionUserName" value="root" />
			<property name="openjpa.ConnectionPassword" value="XXXXXX" />
		</properties>

	</persistence-unit>

</persistence>

 因为使用的是 JAVASE,所以直接将连接信息,写在了文件中。如果是用EJB容器,则可以使用JNDI的方式。

 

 

 

最后,在数据库中新建相应的数据库、数据库的表

 

(如果是Hibernate的话,可以不用见表,OpenJpa暂时不明了,还是新建吧。)


 

测试类 (打错了,少了个t,写成Tes了   ⊙﹏⊙b汗):

package study.test;

import study.entity.Person;
import study.service.PersonManager;
import study.service.PersonManagerImpl;

public class Tes {

	public static void main(String[] args) {

		PersonManager manager = new PersonManagerImpl();
		
		Person person = new Person();
		person.setName("xiaolongfeixiang");
		manager.addPerson(person);
		
		
		Person person2 = manager.getPerson(1);
		System.out.println(person2.getName());
		
	}

}
 

运行结果:

 


  • 大小: 8.5 KB
  • 大小: 6.6 KB
  • 大小: 7 KB
0
0
分享到:
评论
4 楼 卢水发 2011-11-30  
感觉还行,学习一下。
3 楼 litao11046 2011-03-28  
能不能把你的项目发给我啊,我的邮箱是litao11046@163.com
2 楼 litao11046 2011-03-28  
请楼主指点迷津啊,配置和你的是一样的
1 楼 litao11046 2011-03-28  
我在测试的时候出现这个错误:
org.apache.openjpa.persistence.ArgumentException: This configuration disallows runtime optimization, but the following listed types were not enhanced at build time or at class load time with a javaagent

相关推荐

    Java SE实践教程 pdf格式电子书 下载(一) 更新

    9.2.1 我的联系手册(JPA实现) 228 9.2.2 我的联系手册(JAXB实现) 238 9.3 小结 242 第10章 准备环球旅行——应用程序国际化 243 10.1 讲解 244 10.1.1 概念介绍 244 10.1.2 设置Locale 249 10.1.3 隔离...

    Java求职笔试面试网络资源打包.rar

    这些资源可能包括了相关的教程文档、实战项目案例、历年面试题库等,充分利用它们,可以有效地巩固和拓展你的Java知识体系。在准备过程中,理论结合实践,不断编码练习,加深理解,你将更有可能在竞争激烈的Java开发...

    史上最强大的中文版的JavaEE手册

    9. **实战案例**:通过实例来演示如何使用JavaEE技术构建实际的企业级应用,如电子商务系统、CRM系统等。 10. **更新与发展**:随着JavaEE不断演进,最新的JavaEE 8和JavaEE 11引入了更多现代化的特性,如JSF 2.3、...

    javaWeb物资管理系统项目源码.zip

    在本项目中,开发者可能使用了JavaSE(标准版)的基础,以及JavaEE(企业版)的服务器端组件,如Servlet和JSP。 2. **Servlet技术**: Servlet是JavaEE的一部分,它允许开发者创建动态响应HTTP请求的服务。在物资...

    《IT学习资料2》-Java 学习笔记.zip

    - `javase` 文件夹很可能包含了Java基础知识的学习笔记,如变量、数据类型、运算符、控制结构(if、for、while)、方法、类与对象、封装、继承和多态等概念的解释和实例代码。 2. **Java理论基础**: - 标签中的...

    JavaEE 文档

    它建立在JavaSE(标准版)之上,提供了丰富的API和服务,如Servlet、JSP、JPA、JMS、EJB等,使得开发者能够便捷地开发Web应用程序、企业级服务和数据库应用。 Servlet是JavaEE中的核心组件,它是一种用于扩展服务器...

    JavaEE源码在线考试系统无数据库源码文档

    它基于JavaSE平台,提供了更为丰富的API和服务支持,如EJB、JPA、Servlet、JSP等,用于开发可伸缩、健壮、分布式的网络应用。JavaEE强调的是服务器端的应用,适用于构建大型的B/S结构的应用程序。 ### 二、在线考试...

    javaee.rar 电子讲义

    JavaEE是Oracle公司提供的一个开放源代码的服务器端平台,它基于Java Standard Edition(JavaSE)并扩展了其功能,为开发和部署网络应用提供了丰富的API和工具。JavaEE的主要目标是简化企业级应用的开发,通过组件...

    MyXind20180412

    【描述】中的“javaSE,javaWeb,J2EE框架的知识点”涵盖了Java开发的三个主要部分: 1. **Java SE(标准版)**:Java Standard Edition是Java的基础,提供了面向桌面应用和服务器端服务的基本功能。它包括核心类库,...

    JavaEE源码健康管理系统源码数据库sql文档

    JavaEE基于JavaSE,并在其基础上添加了许多企业级服务和技术规范,如Web Services、EJB、JPA、JSF等。JavaEE 1.6对应的是JavaEE 6版本,该版本引入了许多新特性来简化企业级应用的开发过程,包括CDI、WebBeans、JSR-...

Global site tag (gtag.js) - Google Analytics