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>
可以知道这里的事务管理有两种 JTA和RESOURCE_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&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文件
浙公网安备 33010602011771号