上面是我写这个程序的项目结构图
配置文件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
分享到:
相关推荐
学习并掌握OpenJPA不仅可以提升你在Java Web开发中的技能,还能让你更好地理解和运用ORM框架,从而提高开发效率和代码质量。通过深入研究"openjpademo",你可以更深入地了解OpenJPA的特性和用法,这对于任何想要在...
除了对 JPA 标准的支持之外,OpenJPA 还提供了非常多的特性和工具支持让企业应用开发变得更加简单,减少开发者的工作量,包括允许数据远程传输/离线处理、数据库/对象视图统一工具、使用缓存(Cache)提升企业应用...
默认情况下,当应用程序第一次获取实体标识时,OpenJPA 框架从数据库中一次性获取 50 个连续的实体标识缓存起来,当下一次应用程序需要获取实体标识时,OpenJPA 将首先检测缓存中是否存在实体标识,如果存在,Open...
在非容器环境中运行OpenJPA应用,主要涉及的是Java持久层技术OpenJPA与独立Java应用程序的集成。OpenJPA(Open Java Persistence API)是Apache软件基金会开发的一个开源项目,它是Java Persistence API (JPA) 的一...
而OpenJPA则是一个开源的JPA(Java Persistence API)实现,它为Java应用程序提供了对象关系映射(ORM)的能力,使得开发者可以方便地在Java对象和数据库记录之间进行交互。 **一、Spring框架** Spring的核心在于...
总之,OpenJPA源码的下载和研究对于Java开发者来说是一次宝贵的学习机会,不仅可以提升对JPA规范的理解,还可以提高你在ORM领域的专业技能。通过深入源码,你可以掌握OpenJPA的内部工作机制,从而在开发和调试中更加...
**JSF与OpenJPA整合** 涉及到在JSF应用中使用OpenJPA进行数据访问。这通常包括配置OpenJPA的数据源、实体管理器工厂,以及在JSF Managed Beans中注入实体管理器,以便在处理用户请求时执行CRUD操作。JSF的事件驱动...
OpenJPA2还提供了查询语言JPA QL(Java Persistence Query Language),可以用来执行更复杂的查询。此外,OpenJPA2支持懒加载、级联操作、缓存策略等高级特性,这些在实际项目中都是很实用的功能。 通过这个简单的...
OpenJPA(Java Persistence API)则是Java平台上的一个ORM(对象关系映射)工具,它实现了JSR-317规范,使得开发者可以方便地在Java应用程序中操作数据库。本篇将详细讲解如何在Spring项目中集成并使用OpenJPA。 ...
这个版本包含了所有必要的组件,使得开发者可以在他们的应用中轻松地集成和使用OpenJPA。以下是一些关键知识点: 1. **实体管理**:OpenJPA支持定义实体类,这些类代表数据库中的表,通过注解或XML配置文件来描述...
OpenJPA不仅为开发人员提供了强大的数据持久化功能,还具有高度的灵活性和可扩展性。 #### 二、关于文档 - **文档目的**:此官方手册旨在详细介绍OpenJPA的各种特性和用法,以便帮助开发人员更好地理解和使用该框架...
OpenJPA是一个开源的Java持久层框架,它实现了Java Persistence API(JPA),为开发人员提供了一种在Java应用中管理和存储对象到关系数据库的方法。 首先,我们需要了解JPA。Java Persistence API是Java平台上的一...
在Spring MVC应用中整合OpenJPA,可以实现便捷的数据访问。首先,需要在Spring配置中定义数据源、OpenJPA实体管理和事务管理器。然后,通过@Autowired注解将实体管理器注入到需要的地方,如服务层。这样,我们就可以...
OpenJPA API 文档 chm格式
### Apache OpenJPA 2.1 用户指南:Java Persistence API 的深入解析 #### 一、简介 ...此外,该文档还提供了大量的示例代码和最佳实践建议,帮助开发人员更好地掌握和运用 OpenJPA 的各项特性。
### OpenJPA-Manual 关键知识点解析 #### 一、OpenJPA介绍 **1.1 关于本文档** 本文档旨在提供一个全面且深入的指南,帮助开发人员理解和掌握Java Persistence API(JPA)的核心概念及其在Apache OpenJPA中的实现...