package com.jpa.chenhailong;
import java.util.*;
import javax.persistence.*;
/**
* A very simple, stand-alone program that stores a new entity in the
* database and then performs a query to retrieve it.
*/
public class Main {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
// Create a new EntityManagerFactory using the System properties.
// The "hellojpa" name will be used to configure based on the
// corresponding name in the META-INF/persistence.xml file
EntityManagerFactory factory = Persistence.
createEntityManagerFactory("hellojpa", System.getProperties());
// Create a new EntityManager from the EntityManagerFactory. The
// EntityManager is the main object in the persistence API, and is
// used to create, delete, and query objects, as well as access
// the current transaction
EntityManager em = factory.createEntityManager();
// Begin a new local transaction so that we can persist a new entity
em.getTransaction().begin();
// Create and persist a new Message entity
em.persist(new Message("Hello Persistence!"));
// Commit the transaction, which will cause the entity to
// be stored in the database
em.getTransaction().commit();
// It is always good practice to close the EntityManager so that
// resources are conserved.
em.close();
// Create a fresh, new EntityManager
EntityManager em2 = factory.createEntityManager();
// Perform a simple query for all the Message entities
Query q = em2.createQuery("select m from Message m");
// Go through each of the entities and print out each of their
// messages, as well as the date on which it was created
for (Message m : (List<Message>) q.getResultList()) {
System.out.println(m.getMessage()
+ " (created on: " + m.getCreated() + ")");
}
// Again, it is always good to clean up after ourselves
em2.close();
factory.close();
}
}
package com.jpa.chenhailong;
import java.util.*;
import javax.persistence.*;
/**
* A very simple persistent entity that holds a "message", has a
* "created" field that is initialized to the time at which the
* object was created, and an id field that is initialized to the
* current time.
*/
@Entity
public class Message {
@Id
private long id = System.currentTimeMillis();
@Basic
private String message;
@Basic
private Date created = new Date();
public Message() {
}
public Message(String msg) {
message = msg;
}
public void setId(long val) {
id = val;
}
public long getId() {
return id;
}
public void setMessage(String msg) {
message = msg;
}
public String getMessage() {
return message;
}
public void setCreated(Date date) {
created = date;
}
public Date getCreated() {
return created;
}
}
<?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" version="1.0">
<persistence-unit name="hellojpa" transaction-type="RESOURCE_LOCAL">
<class>com.jpa.chenhailong.Message</class>
<properties>
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/openjpa" />
<property name="openjpa.ConnectionDriverName" value="org.gjt.mm.mysql.Driver" />
<property name="openjpa.ConnectionUserName" value="****" />
<property name="openjpa.ConnectionPassword" value="****" />
</properties>
</persistence-unit>
</persistence>
create database openjpa
use openjpa
CREATE TABLE `openjpa`.`Message` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`message` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE = InnoDB
COMMENT = 'test openjpa';
分享到:
相关推荐
8. **兼容性**:Apache OpenJPA与多种Java应用服务器和数据库系统兼容,包括Tomcat、WebLogic、JBOSS、Oracle、MySQL等。 在`apache-openjpa-2.2.1`这个压缩包中,很可能包含了OpenJPA的库文件、文档、示例代码以及...
OpenJPA 是基于 JPA 规范的实现,它提供了一种标准的方式来处理数据库操作,将对象模型与关系型数据库模型进行映射。通过注解或XML配置,开发者可以定义实体类,OpenJPA 将自动处理SQL查询、持久化、事务等细节。 ...
8. **数据库支持**:OpenJPA支持多种数据库,包括Oracle、MySQL、PostgreSQL、SQL Server等,只需配置相应的JDBC驱动即可。 9. **集成框架**:OpenJPA可与Spring、Hibernate等流行框架无缝集成,进一步丰富了开发者...
通过这个简单的Open JPA2 employee例子,我们可以看到如何在Java应用中使用OpenJPA2来管理和操作数据库。它展示了JPA的基本概念,包括实体定义、持久化单元配置、以及CRUD操作的实现,对于理解JPA和OpenJPA2的使用...
OpenJPA提供了诸如实体管理、事务处理、查询优化等核心ORM功能,并且与常见的Java应用服务器如Tomcat、WebLogic等兼容良好,也支持多种数据库系统,如MySQL、Oracle、PostgreSQL等。 描述中提到的“博文链接:...
在实际应用中,OpenJPA 可以与各种 Java 应用服务器和数据库系统集成,如 Apache Tomcat、IBM WebSphere、Oracle、MySQL 等。使用 OpenJPA 时,开发者需要了解 JPA 规范,学习如何配置实体类、持久化单元...
确保正确导入了Apache OpenJPA库,例如`openjpa-all.jar`,以及对应的数据库驱动,如`mysql-connector-java.jar`。 接着,`src`目录通常包含项目的源代码。在OpenJPA应用中,你需要创建实体类(Entity)来映射...
8. **兼容性**:Apache OpenJPA兼容多种JDBC驱动,可连接各种数据库系统,如Oracle、MySQL、PostgreSQL等。 9. **社区支持**:作为Apache项目,OpenJPA拥有活跃的社区和丰富的文档资源,遇到问题时可以获得广泛的...
在OpenJPA配置中,`<provider>`元素指定了OpenJPA作为持久化提供者,`<class>`元素列举了参与持久化的实体类,`openjpa.jdbc.SynchronizeMappings`和`openjpa.ConnectionURL`等属性则是OpenJPA特有的配置,用于同步...
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.open-in-view=false # Secondary Data Source for JPA spring.data.jpa.repositories.base-package=...
- **JPA供应商**:目前市场上有多家供应商提供了JPA的实现,例如**Hibernate**、**TopLink**和**OpenJPA**等。 ### JPA的技术组成 #### 四、JPA的核心技术组成部分 1. **ORM映射元数据**:JPA支持两种元数据形式...
在数据库层面,项目可能采用了关系型数据库管理系统(如MySQL),并且利用了ORM(对象关系映射)技术,将数据库操作转化为面向对象的编程方式,降低了开发复杂性,提高了开发效率。ORM允许开发人员以类和对象的方式...
Hibernate之外,还有其他实现了JPA规范的框架,比如OpenJPA、TopLink等。开发者可以根据项目需求选择不同的JPA实现,而SpringDataJPA就是在此之上提供了一层抽象,即Repository层的实现,进一步简化了持久层的代码...
常见的JPA实现框架包括Hibernate、OpenJPA、TopLink等。其中,Hibernate是最流行的选择,它不仅提供了丰富的功能,还具有高度的灵活性和性能。 #### 对象关系映射(ORM) **对象关系映射**是一种编程技术,用于将...
1. `openjpa-0.9.7-incubating.jar`:Apache OpenJPA,是一个开源的Java持久化API,实现了JPA(Java Persistence API),用于ORM。 2. `toplink-essentials.jar`:Oracle的TopLink Essentials,也是JPA的一个实现,...
2. **ORM框架实现**:比如Hibernate, EclipseLink, OpenJPA等,它们是JPA规范的具体实现,提供了与数据库交互的实际功能。以Hibernate为例,它会包含`hibernate-core.jar`,提供实体管理、会话管理等功能。 3. **...
这一过程允许开发者从现有的数据库结构自动生成Java持久化实体类(即JPA实体类),并进一步生成基本的增删查改(CRUD)操作代码,极大地提高了开发效率和减少了手动编码的工作量。 ### 什么是JPA? Java ...
在Java开发中,Spring框架和Java ...不过,实际项目中还可能需要其他依赖,例如Spring的AOP、ORM、Web模块等,以及数据库特定的驱动和JPA的其他实现(如EclipseLink或OpenJPA),具体依赖于项目的需求和配置。