JPA

JPA规范要求META-INF目录下面放置persistence.xml文件

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">

xml文件有两种约束,一种DTD一种就是schema, xmlns=http://java.sun.com/xml/ns/persistence命名空间

xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi全名:xml schema instance 意味版本号

xsi:schemaLocation="http://java.sun.com/xml/ns/persistence

http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">

                                         根据以上信息,下载http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd后就能根据约束写xml配置文件了

 

关于schema文件的内容可以查看W3C

JPA只是一种规范,就像JDBC一样。需要提供实现规范的jar包。这里可以使用hibernate的示例。Hibernate虽然支持JPA但是也扩展了一些自己的功能。在考虑底层实现可能更改的时候,某些功

最好不要使用。

 

<?xml version="1.0"?>

<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="mysql" transaction-type="RESOURCE_LOCAL"><persistence-unit name="hibernate" transaction-type="RESOURCE_LOCAL">

<!—

根据<xsd:element name="persistence-unit" minOccurs="0" maxOccurs="unbounded">可以知道配置多个persistence-unit

name区分 后面设置事务类型

根据<xsd:restriction base="xsd:token">

<xsd:enumeration value="JTA"/>

<xsd:enumeration value="RESOURCE_LOCAL"/>

</xsd:restriction>

可以知道这里的事务管理有两种 JTARESOURCE_LOCAL

JTA : Java Transaction API方法 可以在javaEE容器中使用这种,主要应用与分布式这种情况。EE中默认

RESOURCE_LOCAL : 本地的事务管理 javaSE中只能使用这种。也就是JDBC管理事务.SE中默认

-->

<!—下面的配置文件基本是模板了, -->

<properties>

<property name = "hibernate.connection.driver_class" value = "com.mysql.jdbc.Driver"/>

<property name = "hibernate.connection.url" value = "jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8"/>

<property name="hibernate.connection.username" value="root" />

<property name="hibernate.connection.password" value="root" />

<property name="hibernate.c3p0.max_size" value="5" />

<property name="hibernate.c3p0.min_size" value="2" />

<property name="hibernate.c3p0.timeout" value="1800" />

<property name="hibernate.cache.use_query_cache" value="10" />

<property name="hibernate.show_sql" value="true" />

</properties>

</persistence-unit>

</persistence>

配置好JPA的配置文件后就可以使用JPA,常用接口有

javax.persistence.EntityManager;

javax.persistence.EntityManagerFactory;

一个类

javax.persistence.Persistence;

然后在实体类中有关键注解

@Entity

    @Table(name="users") 对应Id

    @Id

    @Column(name="id") 对应表名

    @GeneratedValue(strategy=GenerationType.AUTO)//对应主键类型

设置以上后,基本上就可以使用JPA了。许多细节的东西,当需要用到的时候可以查看API    schema文件

                            

posted on 2014-09-16 10:05  wkdlose  阅读(118)  评论(0)    收藏  举报

导航