JPA (Java Persistence API)的目标之一是制定一个可以由很多供应商实现的API,并且开发人员可以编码来实现该API,而不是使用私有供应商特有的API。因此开发人员只需使用供应商特有的API来获得JPA规范没有解决但应用程序中需要的功能。尽可能地使用JPA API,但是当需要供应商公开但是规范中没有提供的功能时,则使用供应商特有的API。
JPA需要Provider来实现其功能,Hibernate就是JPA Provider中很强的一个.从功能上来说,JPA现在就是Hibernate功能的一个子集。Hibernate 从3.2开始,就开始兼容JPA。Hibernate3.2获得了Sun TCK的JPA(Java Persistence API) 兼容认证。
本文目的只在展示Hibernate提供的JPA如何在J2SE环境下的配置。
Eclipse3.4 for j2se + Hibernate3.3
1.新建java项目,配置资源库
引入Hibernate3.3资源包,必须有:
此外当然还要jdbc库引入
2.在src目录下新建META-INF/persistence.xml文档
<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="testjpa" transaction-type="RESOURCE_LOCAL">
<class>org.hibernate.ejb.HibernatePersistence</class>
<!-- 实体类 可以不用配置,@Enty类会自动加入上下文中
<class>com.fencheng.core.TradeType</class>
-->
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>
<property name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver"/>
<property name="hibernate.connection.username" value="admin"/>
<property name="hibernate.connection.password" value="admin"/>
<property name="hibernate.connection.url" valuejdbc:jtds:sqlserver://localhost:1143/smart;user=admin;password=admin""/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
3.以上配置工作就完成了!下面开始测试下。
(1)建表
CREATE
TABLE trantype
(
trancode CHAR(6) COLLATE Chinese_PRC_CI_AS NOT NULL,
tranname CHAR(40) COLLATE Chinese_PRC_CI_AS,
CONSTRAINT PK_trantype PRIMARY KEY (trancode)
)
(2) 编写实体类,用jpa配置与表的映射关系
package com.fencheng.core;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="trantype")
public class TradeType {
private String code;
private String name;
public TradeType(){}
public TradeType(String code, String name) {
this.code = code;
this.name = name;
}
@Id
@Column(name="trancode",unique=true, nullable=false)
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
@Column(name="tranname", length=40, nullable=false)
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
(3)为了简单期间,俺们就不再写个DAO类了,直接在测试类里获得实体管理器,并只实现一个持久化动作
package com.fencheng.core;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class TestHibernate {
private EntityManager em;
private EntityManagerFactory emf;
public TestHibernate(){
emf = Persistence.createEntityManagerFactory("testjpa");
em = emf.createEntityManager();
}
public void addType(TradeType type){
em.getTransaction().begin();
em.persist(type);
em.getTransaction().commit();
}
public static void main(String[] args) {
TestHibernate th = new TestHibernate();
th.addType(new TradeType("001","blabla"));
}
}
执行应用程序,数据成功插入数据库!
分享到:
相关推荐
例如,在容器托管的EntityManager对象只能使用JTA管理事务,而在J2SE环境下只能使用RESOURCE_LOCAL管理事务。 JTA事务是容器级别的事务,能够支持分布式事务。使用JTA管理EntityManager事务时,需要注意以下几个...
在J2SE环境中,可以通过`Persistence.createEntityManagerFactory()`和`createEntityManager()`创建并使用;在EJB或Web容器中,可以使用`@PersistenceUnit`注解注入`EntityManagerFactory`。 2. **容器托管的实体...
在本示例中,我们看到项目不需要J2EE环境,这意味着它不需要应用服务器,而是可以直接在Java标准版(J2SE)环境下运行。这通常意味着更小的依赖和更简单的部署流程。 **MySQL** 是一个广泛使用的开源关系型数据库...
首先,J2SE,也被称为Java SE或现在的Java平台标准版,是Java的核心,提供了基础的编程环境和类库,用于开发桌面应用、服务器端应用和嵌入式系统。J2SE包括Java语言规范、Java虚拟机(JVM)、类库和开发工具。它的...
* 在 J2SE 环境中获取 EntityManager * 在 EJB 容器中获取 EntityManager 容器托管的实体管理器: * 事务范围的 EntityManager * 可扩展的 EntityManager 事务范围的 EntityManager: * 使用 @...
J2SE 是 Java 平台的核心部分,它为桌面应用和服务器端应用提供运行环境。J2SE 提供了丰富的类库,包括基础的 I/O、网络编程、多线程、图形用户界面(GUI)等,同时,它也是 J2EE 平台的基础,因为 J2EE 应用程序...
4. **改进的 JDBC 4.0**:JDBC 4.0 提供了自动连接管理、统一的异常处理以及对 Java Persistence API (JPA) 更好的支持,简化了数据库访问。 5. **动态代理**:J2SE 6.0 引入了 `java.lang.reflect.Proxy` 类,允许...
6. **varia**: "varia"通常表示“各种各样的”,在这个目录下,可能包含了一些不常使用的或者特定场景下的组件或工具。 7. **remoting**: JBoss Remoting是JBoss提供的远程调用框架,支持多种协议,如HTTP、RMI、...
6. **JPA(Java Persistence API)** 和 **Hibernate**:JPA是Java官方的持久化框架,而Hibernate是流行的第三方实现,用于对象关系映射,简化数据库操作。 7. **Web服务**:J2EE支持SOAP和RESTful两种类型的Web...
4. **Java Persistence API (JPA)**:JPA是用于管理关系数据库的对象/关系映射(ORM)框架,简化了Java应用与数据库之间的交互。 5. **Java Messaging Service (JMS)**:JMS提供了一种标准接口,用于在Java应用之间...
4. **国际化与本地化**:`java.text`和`java.util.Locale`为多语言环境提供了支持。 5. **反射**:`java.lang.reflect`允许在运行时检查类、接口、字段和方法的属性。 6. **集合框架**:`java.util`中的ArrayList...
Java Persistence API (JPA) 是Java企业级应用中用于对象关系映射(ORM)的标准框架。ORM的主要目标是解决在关系数据库与面向对象编程之间的不匹配问题,使得...在J2SE和J2EE环境下都能使用,适应了不同场景的需求。
J2EE API则专注于企业级应用的开发,提供了一整套服务和框架来处理分布式环境下的复杂问题,如: 1. **Servlet和JSP**:用于构建动态Web应用的技术,Servlet处理服务器端逻辑,JSP用于生成动态HTML内容。 2. **...
3. **Java Persistence API (JPA) 1.0**:提供了一种统一的方式来管理和持久化对象,简化了ORM(对象关系映射)操作。 4. **Enterprise JavaBeans (EJB) 3.0**:大大简化了EJB的使用,引入了无状态会话bean和实体...
9. **Servlet Container** 和 **Application Server**:如Tomcat、Jetty或WebLogic,它们提供运行Java Web应用的环境。 10. **Web Services**:通过SOAP和RESTful API,Java允许应用之间进行远程通信。 这份"java...
- **JPA(Java Persistence API)**:尽管本项目未明确提及,但可以考虑使用JPA作为更高级的ORM框架,简化数据库操作。 ### 6. 测试与调试 - **JUnit**:单元测试框架,确保代码功能正确。 - **Debug工具**:如IDE...
Java SE是Java的核心部分,它提供了基础的类库和运行时环境,支持桌面应用、移动应用以及服务器端的开发。Java SE的关键组件包括Java虚拟机(JVM)、Java语言规范、Java核心类库等。其中,Java虚拟机使得Java代码...
Java是广泛使用的编程语言,分为J2SE(Java标准版)、J2EE(Java企业版)和J2ME(Java微型版)。J2SE是Java的基础,包括核心类库和虚拟机,是学习Java的基础。J2EE则面向企业级应用开发,提供了Web容器和EJB(Enterprise ...
J2EE(Java 2 Enterprise Edition)是Java平台的企业版,它在J2SE的基础上增加了对分布式计算、企业级应用服务的支持,如Java Servlet、JavaServer Pages (JSP)、Java Persistence API (JPA)、Java Message Service ...
##### 5.6 在J2SE环境中使用JPA - **使用过程**: - 手动创建EntityManagerFactory。 - 通过EntityManagerFactory创建EntityManager。 - **示例**: - 创建实体类。 - 手动管理EntityManager的生命周期。 ####...