赞
踩
Java Persistence API, Java持久化接口。
是官方的数据访问的规范和接口。
针对此接口, 有不同的实现。比如: Hibernate, Top Link(Eclipse Link)
来源于TopLink, TopLink是Oracle提供的数据接口的实现,应用在 Weblogic的应用服务器上。 后来捐给了 Eclipse, Eclipse很高兴的发扬光大, 改了个名字, 而且很自然的集成到 Eclipse的IDE中了。
3.下一步直到出现如下页面
因为JPA只是接口, 所以需要下载实现。 点击下载按钮, 下载之后会出现如上效果。
下面有一个 Add connection,可以添加数据库连接, 有连接之后后面就可以把数据库的表导出为实体类。
这里不添加也可以在项目创建完成之后,在右键单击项目进入属性页面的 JPA中设置。
在项目运行的时候,连接不同的数据库, 需要下载对应的驱动, 并导入到项目的路径中
从Table导出实体类的方式:
右键 New 选择JPA Entities from Tables
导出的是基于注解的类, 类的映射会自动加到persistence.xml。
这里导出的是User 表,表很简单,只有id和name两个属性。 默认导出到 model包下
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="jpa">
<class>model.User</class>
</persistence-unit>
</persistence>
基于注解的映射是JPA较为常见的方式,如有已经有类或是习惯hibernate早期XML的映射配置, 要使用 XML的方式配置映射,选择 EclipseLink下面的Dynamic Entities from Tables 导出XML的映射。
1.会产生配置文件: eclipselink-orm.xml
<?xml version="1.0" encoding="UTF-8"?> select u from User u
2.会把产生的文件添加到persistence.xml
要运行测试的话, 需要做一些改动, 以 XML为例,附上改动后完整的代码:
<?xml version="1.0" encoding="UTF-8"?>
<entity-mappings version="2.1" xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.eclipse.org/eclipselink/xsds/persistence/orm http://www.eclipse.org/eclipselink/xsds/eclipselink_orm_2_1.xsd">
<named-query name="User.findAll">
<query>select u from User u</query>
</named-query>
<entity class="model.User" access="VIRTUAL">
<attributes>
<id name="id" attribute-type="String">
</id>
<basic name="name" attribute-type="String">
</basic>
</attributes>
</entity>
</entity-mappings>
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="jpaProj">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<mapping-file>META-INF/eclipselink-orm.xml</mapping-file>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/ssmi?serverTimezone=UTC" />
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="123456" />
</properties>
</persistence-unit>
</persistence>
public class User { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
4.JpaDemo.java
public class JpaDemo { /** * @Title: main * @Description: TODO * @param args */ public static void main(String[] args) { EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("jpaProj"); EntityManager entityManager = entityManagerFactory.createEntityManager(); entityManager.getTransaction().begin(); // List<User> result = entityManager.createNamedQuery("User.findAll").getResultList(); List<User> result = entityManager.createQuery("select u " + "from User u ").getResultList(); for (User user : result) { System.out.println(user.getName()); } entityManager.getTransaction().commit(); entityManager.close(); } }
注意: 类和表的名字保持一致。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。