JPA概念
Java Persistence API (java持久化API) 与JDBC性质一样,都属于规范。
这套规范定义了如何以面向对象的方式操作数据库.这套出现在hibernate框架之后.受hibernate框架启发.其中与hibernate设计不同的是支持以注解的方式注册实体对象.hibernate率先宣布支持JPA
JPA环境搭建
1.导包
除了这两个文件夹下,还需要自己导入 数据库驱动,就不截图了
2.建立配置文件
JPA要求在src下建立META-INF文件夹,里面新建个persistence.xml
配置如下:
<?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"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
<!--Name属性用于定义持久化单元的名字 (name必选,空值也合法);
transaction-type 指定事务类型(可选)
取值:
JTA:Java Transaction Api 用于分布式事务
RESOURCE_LOCAL : 单连接事务
-->
<persistence-unit name="abc" transaction-type="RESOURCE_LOCAL">
<!-- javax.persistence.PersistenceProvider接口的一个实现类(可选) -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- 显式列出实体类,在Java SE 环境中应该显式列出.(可选)
<class>com.domain.Customer</class>-->
<!--厂商专有属性(可选) 我们用的Hibernate,后面都是hibernate.cfg.xml中配置-->
<properties>
<!-- 数据库的连接信息 -->
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/test"/>
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="1234" />
<!-- 指定方言 -->
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQL5Dialect" />
<!-- 生成DDL的策略 -->
<property name="hibernate.hbm2ddl.auto" value="update" />
<!-- 是否显示SQL语句 -->
<property name="hibernate.show_sql" value="true" />
<!-- 是否格式化SQL语句 -->
<property name="hibernate.format_sql" value="true" />
<!-- 指定使用c3p0连接池 -->
<property name="hibernate.connection.provider_class" value="org.hibernate.connection.C3P0ConnectionProvider" ></property>
</properties>
</persistence-unit>
</persistence>
新建JPAUtils.java
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
public class JPAUtils {
private static EntityManagerFactory factory;
static{
//读取主配置,并创建EntityManagerFactory(可以理解为Session工厂)
factory = Persistence.createEntityManagerFactory("abc");
}
public static EntityManager getEntityManager(){
return factory.createEntityManager();
}
}