框架学习之JPA(一)
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。
学习视频:尚硅谷框架jpa学习(有兴趣的同学留言邮箱)
使用软件:eclipse
Java版本:jdk8
本节目录
一、JPA_hello world
1.创建一个jpa项目,导入jar包
2.配置persistence.Xml文件
3.创建一个Customer类
4.Main类进行持久化操作
一、JPA_hello world
1.创建一个jpa项目,导入jar包
- Hibernate包
- Jpa整合包
- Mysql连接包
2.配置persistence.Xml文件
<persistence-unit name="SGG-jpa" transaction-type="RESOURCE_LOCAL"> <!-- 配置使用什么 ORM 产品来作为 JPA 的实现 1. 实际上配置的是 javax.persistence.spi.PersistenceProvider 接口的实现类 2. 若 JPA 项目中只有一个 JPA 的实现产品, 则也可以不配置该节点. --> <provider>org.hibernate.ejb.HibernatePersistence</provider> <!-- 添加持久化类 --> <class>hue.edu.xiong.jpa.Customer</class> <properties> <!-- 连接数据库的基本信息 --> <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/> <property name="javax.persistence.jdbc.url" value="jdbc:mysql:///jpa"/> <property name="javax.persistence.jdbc.user" value="root"/> <property name="javax.persistence.jdbc.password" value="admin"/> <!-- 配置JPA实现产品的基本属性,配置hibernate --> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.hbm2ddl.auto" value="update"/> </properties> </persistence-unit>
3.创建一个Customer类
package hue.edu.xiong.jpa; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; @Table(name="JPA_CUSTOMERS") @Entity public class Customer { @Id @GeneratedValue(strategy=GenerationType.AUTO) private Integer id; @Column(name="LAST_NAME") private String lastName; private String email; private Integer age; //get,set略,请自行补充 }
4.Main类进行持久化操作
package hue.edu.xiong.jpa; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; public class Main { public static void main(String[] args) { // 1.创建EntitymanagerFactory String persistenceUnitName = "SGG-jpa"; EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory(persistenceUnitName); // 2.创建Entitymanager EntityManager entityManager = entityManagerFactory.createEntityManager(); // 3.开启事务 EntityTransaction transaction = entityManager.getTransaction(); transaction.begin(); // 4.进行持久化操作 Customer customer = new Customer(); customer.setAge(12); customer.setEmail("937724308@qq.com"); customer.setLastName("xiong"); entityManager.persist(customer); // 5.提交事务 transaction.commit(); // 6.关闭Entitymanager entityManager.close(); // 7.关闭EntitymanageFactory entityManagerFactory.close(); } }
运行之后自动在mysql中创建了表,储存了数据,并且表结构和名称和我们声明的一样