上面是我写这个程序的项目结构图
配置文件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="lushuifa" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>com.lushuifa.po.User</class>
<properties>
<property name = "openjpa.ConnectionDriverName" value = "com.mysql.jdbc.Driver"/>
<property name = "openjpa.ConnectionURL" value = "jdbc:mysql://localhost:3306/test"/>
<property name = "openjpa.ConnectionUserName" value = "root"/>
<property name = "openjpa.ConnectionPassword" value = "lushuifa"/>
<property name = "openjpa.jdbc.SynchronizeMappings" value = "buildSchema(ForeignKeys=true)"/>
<!--显示SQL执行语句-->
<property name="openjpa.Log" value="SQL=TRACE"/>
</properties>
</persistence-unit>
</persistence>
实体bean User.java
package com.lushuifa.po;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User implements Serializable
{
/**/
private static final long serialVersionUID = 1L;
private int userId;
private String userName;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public int getUserId()
{
return userId;
}
public void setUserId(int userId)
{
this.userId = userId;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
}
dao层,UserDao.java 数据库访问对象
package com.lushuifa.dao;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.transaction.Transaction;
import com.lushuifa.po.User;
public class UserDao
{
private EntityManager entityManager = getEntityManager();
// 拿到EntityManager
public EntityManager getEntityManager()
{
EntityManager em = null;
try
{
EntityManagerFactory emf = Persistence.createEntityManagerFactory("lushuifa");
em = emf.createEntityManager();
}
catch (Exception e)
{
System.out.println("获取EntityManager失败了!原因如下:" + e);
}
return em;
}
// 添加用户的方法
public void addUser(User user)
{
System.out.println(this.entityManager);
try
{
this.entityManager.getTransaction().begin();
this.entityManager.persist(user);
this.entityManager.getTransaction().commit();
System.out.println("添加用户成功!");
}
catch (Exception e)
{
System.out.println("添加用户失败,原因如下:");
e.printStackTrace();
}
}
//查询用户的方法
public User findUserById(int id){
User user = null;
try
{
user = this.entityManager.find(User.class,id);
}
catch (Exception e)
{
System.out.println("查询用户有误,原因如下:" + e);
}
return user;
}
public static void main(String[] args)
{
// 测试是否拿到entitymanager
EntityManagerFactory emf = Persistence.createEntityManagerFactory("lushuifa");
EntityManager em = emf.createEntityManager();
System.out.println(em);
}
}
单元测试类
package com.lushuifa.dao;
import org.junit.Test;
import com.lushuifa.po.User;
public class UserDaoTest
{
private UserDao userDao = new UserDao();
@Test
public void testAddUser()
{
User user = new User();
user.setUserName("刘德华");
this.userDao.addUser(user);
}
@Test
public void testFindUserById()
{
User user = this.userDao.findUserById(1);
System.out.println("查出来的名字是:"+user.getUserName());
}
}
测试效果
最后上传的我的项目
- 大小: 23.7 KB
- 大小: 12.8 KB
- 大小: 11.8 KB
分享到:
相关推荐
除了对 JPA 标准的支持之外,OpenJPA 还提供了非常多的特性和工具支持让企业应用开发变得更加简单,减少开发者的工作量,包括允许数据远程传输/离线处理、数据库/对象视图统一工具、使用缓存(Cache)提升企业应用...
默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...
OpenJPA is Apache's implementation of Sun's Java Persistence 2.0 API (JSR-317 JPA 2.0) specification for the transparent persistence of Java objects. This document provides an overview of the JPA ...
openJPA官方手册,openJPA官方手册openJPA官方手册
本文的Eclipse工程文件 博文链接:https://lxy19791111.iteye.com/blog/184113
OpenJPA API 文档 chm格式
Open JPA2 employee 简单例子
JPA Overview and OpenJPA Reference Guide
自己用openjpa些的一个基于web 的例子
Spring中使用OpenJPA源代码 博文链接:https://lxy19791111.iteye.com/blog/184997
jsf 入门知识 ,jsf标签,jsf与openJpa整合,jsf与Spring整合
OpenJPA OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大、使用简单的持久化数据管理框架。
OpenJPA 是 Apache 组织提供的开源项目,它实现了 EJB 3.0 中的 JPA 标准,为开发者提供功能强大...OpenJPA 可以作为独立的持久层框架发挥作用,也可以轻松的与其它 Java EE 应用框架或者符合 EJB 3.0 标准的容器集成。
Spring MVC+OpenJPA框架,只是个框架哦
Openjpa2.2+Mysql+Maven+Servlet+JSP 博客源码: http://blog.csdn.net/shenhonglei1234/article/details/10394379
可以在openjpa-project子目录中找到以下文件: openjpa-project / BUILDING.txt openjpa-project / CHANGES.txt openjpa-project / RELEASE-NOTES.html 有关文档和项目信息,请访问我们的项目站点: : 编译中 ...
本文是 使用 Apache OpenJPA 开发 EJB 3.0 应用系列 的第五部分,介绍在 OpenJPA 中如何自动生成实体的唯一标识,包括使用容器自动生成实体标识,借助于数据库的自动编号、序列号、数据库表等技术自动生成实体标识等...
openjpa相关jar包,开发必备,希望对各位有帮助
JPA规范要求对实体对象...OpenJPA支持两种增强 方法,但强烈建议使用字节码编织增强。以下“ 实体增强” 页面包括有关两种增强类型的更多详细信息,以及有关如何在ANT,Maven和Eclipse环境中设置构建时间增强的示例。