JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,内部是由一系列的接口和抽象类构成。JPA通过JDK 5.0注解描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA的优势:标准化、容器级特性的支持、简单方便、查询能力、高级特性
JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口,但具体实现则由服务厂商来提供实现。JPA和Hibernate的关系就像JDBC和JDBC驱动的关系,JPA是规范,Hibernate除了作为ORM框架之外,它也是一种JPA实现。
1、创建一个maven工程,在pom.xml中导入对应的坐标
1 <properties> 2 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 3 <project.hibernate.version>5.0.7.Final</project.hibernate.version> 4 </properties> 5 6 <dependencies> 7 <!-- junit --> 8 <dependency> 9 <groupId>junit</groupId>10 <artifactId>junit</artifactId>11 <version>4.12</version>12 <scope>test</scope>13 </dependency>14 15 <!-- hibernate对jpa的支持包 -->16 <dependency>17 <groupId>org.hibernate</groupId>18 <artifactId>hibernate-entitymanager</artifactId>19 <version>${project.hibernate.version}</version>20 </dependency>21 22 <!-- c3p0 -->23 <dependency>24 <groupId>org.hibernate</groupId>25 <artifactId>hibernate-c3p0</artifactId>26 <version>${project.hibernate.version}</version>27 </dependency>28 29 <!-- log日志 -->30 <dependency>31 <groupId>log4j</groupId>32 <artifactId>log4j</artifactId>33 <version>1.2.17</version>34 </dependency>35 36 <!-- Mysql and MariaDB -->37 <dependency>38 <groupId>mysql</groupId>39 <artifactId>mysql-connector-java</artifactId>40 <version>5.1.6</version>41 </dependency>42 </dependencies>
2、编写实体类和数据表的映射配置,创建实体类以后,使用对应的注释配置映射关系
@Entity 作用:指定当前类是实体类。 @Table 作用:指定实体类和表之间的对应关系。 属性: name:指定数据库表的名称 @Id 作用:指定当前字段是主键。 @GeneratedValue 作用:指定主键的生成方式。。 属性: strategy :指定主键生成策略。 @Column 作用:指定实体类属性和数据库表之间的对应关系 属性: name:指定数据库表的列名称。 unique:是否唯一 nullable:是否可以为空 inserttable:是否可以插入 updateable:是否可以更新 columnDefinition: 定义建表时创建此列的DDL secondaryTable: 从表名。如果此列不建在主表上(默认建在主表),该属性定义该列所在从表的名字搭建开发环境[重点]
联系客服