1.环境搭建:
1.1 JDK 1.6.0.22的下载地址:http://java.sun.com
1.2 Eclipse IDE
for Java EE Developers 3.6.2的下载地址:http://www.eclipse.org/downloads/
1.3 OpenJPA 2.1.0的下载地址:http://openjpa.apache.org/downloads.html
1.4 Mysql5.5.9的下载地址:http://dev.mysql.com/downloads/
1.5 SQuirreL SQL Client(Mysql client)2.6.4 http://squirrel-sql.sourceforge.net/
1.6 Apache Tomcat6.0.26的下载地址:http://tomcat.apache.org/download-60.cgi
2 Eclipse配置
2.1 配置Configure User Libraries for JPA
2.2 配置数据库连接
3 创建新的JPA Project
4 创建数据库和表
4.1.SQuirreL SQL Client 创建数据库
create database jpadb;
4.2.编写创建表sql语句:createtable.sql
drop table if exists yan_user;
Create TABLE yan_user(
ID INT NOT NULL AUTO_INCREMENT,
NAME VARCHAR(20) NOT NULL,
LOGINID VARCHAR(20) NOT NULL,
PASSWORD VARCHAR(32) NOT NULL,
AGE INT NOT NULL,
PRIMARY KEY(ID)
);
右键:执行所有,eclipse执行sql语句在数据库中创建表完成。
5.Java代码实现
5.1
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.jpa.dao;
import com.yan.dev.jpa.entity.User;
/**
* Comment for IUserDao.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-24 下午05:06:31
*/
public interface IUserDao {
public void save(User user) throws Exception;
}
5.2
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.jpa.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.Persistence;
import com.yan.dev.jpa.entity.User;
/**
* Comment for UserDaoImpl.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-24 下午05:07:34
*/
public class UserDaoImpl implements IUserDao {
/*
* (non-Javadoc)
*
* @see com.yan.dao.IUserDao#save(com.yan.entity.User)
*/
public void save(User user) throws Exception {
EntityManagerFactory factory = Persistence
.createEntityManagerFactory("FirstJPA");
EntityManager em = factory.createEntityManager();
EntityTransaction t = em.getTransaction();
t.begin();
try {
em.persist(user);
t.commit();
} catch (Exception e) {
e.printStackTrace();
t.rollback();
throw e;
} finally {
em.close();
factory.close();
}
}
}
5.3
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.jpa.entity;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* Comment for User.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-24 下午07:01:33
*/
@Entity
@Table(name="yan_user")
public class User {
public User(){
}
@Id
@GeneratedValue(strategy=IDENTITY)
private int ID;
@Column(name = "NAME")
private String name;
@Column(name = "LOGINID")
private String loginId;
@Column(name = "PASSWORD")
private String password;
@Column(name = "AGE")
private int age;
public int getId() {
return ID;
}
public String getName() {
return name;
}
public String getLoginId() {
return loginId;
}
public String getPassword() {
return password;
}
public int getAge() {
return age;
}
public void setId(int id) {
this.ID = id;
}
public void setName(String name) {
this.name = name;
}
public void setLoginId(String loginId) {
this.loginId = loginId;
}
public void setPassword(String password) {
this.password = password;
}
public void setAge(int age) {
this.age = age;
}
}
5.4
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.jpa.service;
import com.yan.dev.jpa.entity.User;
/**
* Comment for IUserService.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-24 下午05:17:01
*/
public interface IUserService {
public boolean save(User user);
}
5.5
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.jpa.service;
import com.yan.dev.jpa.dao.IUserDao;
import com.yan.dev.jpa.dao.UserDaoImpl;
import com.yan.dev.jpa.entity.User;
/**
* Comment for UserServiceImpl.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-24 下午05:52:11
*/
public class UserServiceImpl implements IUserService {
private IUserDao dao;
public UserServiceImpl() {
dao = new UserDaoImpl();
}
/*
* (non-Javadoc)
*
* @see com.yan.service.IUserService#save(com.yan.entity.User)
*/
public boolean save(User user) {
try {
dao.save(user);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
}
5.6.测试类的编写
/**
* Copyright(c) 2010-2011 Yan.Dev. All Rights Reserved.
*/
package com.yan.dev.jpa.test;
import junit.framework.Assert;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.yan.dev.jpa.entity.User;
import com.yan.dev.jpa.service.IUserService;
import com.yan.dev.jpa.service.UserServiceImpl;
/**
* Comment for Testcase.java
*
* @author <a href="mailto:yan.dev@hotmail.com">yan.dev</a>
*
* @blog:<a href="http://yan-dev.iteye.com"><b>yan.dev's Blog</b></a>
* @version 1.0
* @time 2011-3-24 下午04:52:15
*/
public class Testcase {
private IUserService service;
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
service=new UserServiceImpl();
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
service=null;
}
@Test
public void save() {
User user=new User();
user.setName("yan.dev2");
user.setLoginId("yan2");
user.setPassword("dev2");
user.setAge(99);
Assert.assertEquals(service.save(user), true);
}
}
6.persistence.xml的修改
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
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">
<persistence-unit name="FirstJPA" transaction-type="RESOURCE_LOCAL">
<!-- 定义jpa的Provider -->
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<!-- 定义持久化实体 -->
<class>com.yan.dev.jpa.entity.User</class>
<!-- 定义jpa的数据库参数 -->
<properties>
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/jpadb" />
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" />
<property name="openjpa.ConnectionUserName" value="root" />
<property name="openjpa.ConnectionPassword" value="root" />
</properties>
</persistence-unit>
</persistence>
7.添加运行参数
VM arguments位置添加AspectJ的参数
-javaagent: …/openjpa-all-2.1.0.jar(…为openjpa的位置)
8.注意事项
创建表时注意大小写
运行时参数的设置
实体类中id的注释
SquirreL配置时,需要把mysql connetor驱动索引正确
- 大小: 81.2 KB
- 大小: 97.9 KB
- 大小: 43.8 KB
- 大小: 43.3 KB
- 大小: 18.6 KB
- 大小: 27.5 KB
- 大小: 33.2 KB
- 大小: 29.6 KB
- 大小: 31.1 KB
分享到:
相关推荐
**JSF与OpenJPA整合** 涉及到在JSF应用中使用OpenJPA进行数据访问。这通常包括配置OpenJPA的数据源、实体管理器工厂,以及在JSF Managed Beans中注入实体管理器,以便在处理用户请求时执行CRUD操作。JSF的事件驱动...
http://blog.csdn.net/shenhonglei1234/article/details/10352367 openjpa框架入门_项目框架搭建(二) Openjpa2.2+Mysql+Maven+Servlet+JSP
**OpenJPA入门案例** 在"OpenJpaExample"这个项目中,通常会包含以下组成部分: 1. **实体类(Entity)**:代表数据库中的表,通过@Entity注解标记,并使用@Id指定主键字段。 2. **持久化单元配置(Persistence....
JPA 供应商:JPA 的供应商包括 Oracle、Hibernate、OpenJPA 等。 JPA 入门 创建 JPA 步骤: 1. 创建 persistence.xml 文件 2. 编写实体类 3. 创建 EntityManagerFactory 4. 获取 EntityManager JPA 执行过程: ...
4. **JPA供应商**:包括Hibernate、OpenJPA、EclipseLink等,它们实现JPA规范,提供了各自的特性和服务。 5. **JPA技术**:包括实体管理、查询语言(JPQL)、 Criteria API、事务管理、事件监听等。 ### 二、JPA...
常见的JPA实现框架包括Hibernate、OpenJPA、TopLink等。其中,Hibernate是最流行的选择,它不仅提供了丰富的功能,还具有高度的灵活性和性能。 #### 对象关系映射(ORM) **对象关系映射**是一种编程技术,用于将...
**Apache OpenJPA 用户指南** 是一份详尽的文档,旨在帮助开发人员理解和掌握 Java Persistence API (JPA) 的核心概念及其在实际项目中的应用。该指南适用于希望了解如何使用 JPA 进行对象关系映射(ORM)的开发人员...
Hibernate基于Java Persistence API(JPA),它提供了对象关系映射(ORM)功能,将Java类映射到数据库表。首先,你需要下载Hibernate库并将其添加到项目依赖中。接着,配置Hibernate的主配置文件`hibernate.cfg.xml`...
8. **JPA(Java Persistence API)**:用于简化Java应用中的对象关系映射,如Hibernate、OpenJPA等是其实现。通过JPA,可以更直观地处理数据库操作,减少对JDBC的直接依赖。 9. **Web容器**:如Tomcat、Jetty等,...
在本教程中,我们将深入探讨如何入门Apache Ofbiz的开发,这是一个开源的企业级应用框架,专为电子商务、供应链管理和企业资源规划等业务流程设计。Ofbiz提供了强大的组件化架构,使得开发者可以方便地构建和扩展...
OFBiz,全称为Open For Business Project,是一款开源的企业级应用框架,主要应用于电子商务、供应链管理、客户关系管理等业务场景。作为一个全面的企业解决方案,OFBiz提供了丰富的功能组件,包括产品目录管理、...
8. **快速入门指南内容**:这些指南可能包含如何配置开发环境、创建第一个Jakarta EE应用、部署到不同应用服务器、使用JPA进行数据访问、实现RESTful Web服务、安全认证和授权等内容。 9. **开发流程**:开发者通常...
文件名`Spring_OSGi_入门_(Spring_DM_in_Action).pdf`暗示这个问题可能与Spring DM(现在称为Spring OSGi)相关,这是一款用于在OSGI环境中管理Spring应用的框架。 解决这个问题,首先需要检查项目构建配置,确保...
在Java编程世界中,Axelor Open Platform具有显著的优势,它基于Java EE标准,如JPA(Java Persistence API)和JSF(JavaServer Faces),这使得开发者可以利用已有的Java知识快速上手。同时,由于其开源性质,...
#### 三十九、OpenJPA缓存(OpenJPA Caching) OpenJPA是Java Persistence API的一个开源实现。这部分内容介绍了如何将Ehcache与OpenJPA结合起来使用。 #### 四十、Grails缓存(Grails Caching) Grails是基于...
推荐工具:-OpenWrite:Markdown微信编辑器是一种专业强大的微信公众平台在线编辑放置工具,提供手机预览功能,让用户在微信图文,文章,内容布局,文本编辑,素材编辑上更加方便。-一,支持泥瓦匠Spring Boot 2.x...
OFBIZ,全称为Open For Business Project,是一个开源的企业应用套件,旨在提供全面的企业级业务解决方案。该系统由Java编写,基于服务导向架构(SOA),支持Web服务和可扩展标记语言(XML)。OFBIZ提供了包括电子...