1.1 jpa 是一个开发规范 是一个ORM框架的开发规范 是SUN 公司定义的 中文名:JAVA持久层API
orm : 对象关系映射 是一个解决问题的思路 对对象的操作就是对数据库的操作
1.2 jpa 的优势
标准化
容器级特性的支持
简单方便
操作简单 创建类跟 创建java普通类一样方便 只需使用javax.persistence.Entity注释
查询能力
支持继承 支持多态
2 什么是SpringDataJPA
Spring Data JPA框架主要针对的是Spring 唯一没有简化到业务逻辑代码 开发者连仅实现持久层业务逻辑的工作都省了,唯一要做的就是生明持久层的接口 其它的都交给Spring Data JPA来帮完成
并不是JPA规范实现 基于原生的jpa 的api 进行了再次的封装
如果要使用SpringDataJpa 还需要使用Hibernate
创建maven工程
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.hibernate.version>5.0.7.Final</project.hibernate.version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <!--hibernate 对jpa的支持--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>${project.hibernate.version}</version> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>${project.hibernate.version}</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.6</version> </dependency> </dependencies>
在resources包中建META-INF/persistence.xml文件<?xml version="1.0" encoding="UTF-8"?><persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> <!--配置持久化单元 在配置文件中至少有一个 name 持久化单元的名称 transaction-type 事物类型 RESOURCE_LOCAL 单数据库的事物 JTA 分布式事物 跨数据的事物 多个数据库的事物 --> <persistence-unit name="myjpa" transaction-type="RESOURCE_LOCAL"> <properties> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="root"/> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/数据库名"/> <!--配置hibernate的属性--> <property name="hibernate.show_sql" value="true"></property> <!--sql语句是否格式化--> <property name="hibernate.format_sql" value="true"/> <!--是否自动创建数据库表 value 可选值 create update none create 程序自动创建数据库表 如果表存在 先删除后创建 update 程序自动创建数据库表 如果表存在 不创建 none 不会创建 --> <property name="hibernate.hbm2ddl.auto" value="create"/> </properties> </persistence-unit></persistence>entity包 package cn.dy.jpa.entity;import javax.persistence.*;/** * author:dingyi * time:2019/8/14 0014 16:00 */@Entity@Table(name="cust_stu")public class Stu { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id @Column(name = "Id") private Long Id; @Column (name="name") private String name; @Column(name = "age") private Integer age; @Column(name = "sex") private String sex; @Override public String toString() { return "Stu{" + "name='" + name + '\'' + ", age=" + age + ", sex='" + sex + '\'' + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; }}测试类: import cn.dy.jpa.entity.Stu;import org.junit.Test;import javax.persistence.*;/** * author:dingyi * time:2019/8/14 0014 16:05 */public class TestStu { @Test public void firstTest(){ // 1 创键一个EntityManagerFactory 对象 使用完关闭 EntityManagerFactory factory = Persistence.createEntityManagerFactory("myjpa"); // 2 使用工厂对象EntityManagerFactory 就是一个连接 EntityManager entityManager = factory.createEntityManager(); // 3 开启事物 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); // 4 创键 Customer 对象 Stu stu = new Stu(); stu.setName("jack"); stu.setAge(123); stu.setSex("男"); // 5 使用Entitymanager 对象 的persist 方法向数据库添加数据 entityManager.persist(stu); // 6 事物提交 transaction.commit(); // 7 关闭连接 entityManager.close(); factory.close(); }}转载于:https://www.cnblogs.com/dingyi-boss/p/11351976.html
相关资源:JAVA上百实例源码以及开源项目