JPA入门 | 您所在的位置:网站首页 › jpa快速入门 › JPA入门 |
ORM思想:
主要的目的:使得操作实体类就想操作数据库表一样 实现方式:建立两个映射关系 实体类和表的映射关系 实体类中属性和表中字段的映射关系最终效果:使得与数据库的数据交互不在重点关注sql语句 hibername框架简介:hibername是一个对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库建立了映射关系,是一个全自动封装的ORM框架,hibername可以自动生成sql语句,自动执行,使得程序员无需关注sql语句,随心所欲的调用hibername提供的方法以面向对象的思维进行开发,了解,因为SpringDataJpa底层使用了hibername框架 JPA规范就像JDBC的规范一样,由官方制定,内部由接口和抽象类组成,不同的厂家根据规范进行不同的实现,我们在使用时,只需要指定对应厂家即可,JPA也是一种规范,有多种实现,SpringDataJpa也只是一种实现方式 使用注解或者一点点代码调用JPA规范暴露出来的接口或者抽象类,底层有hibernate实现数据库的交互 以案例入手,快速入门JPA 案例需求:学生表的CRUD操作 1)、环境搭建 创建maven工程,导入依赖 junit junit 4.11 org.hibernate hibernate-entitymanager 5.0.12.Final com.alibaba druid 1.1.14 log4j log4j 1.2.17 mysql mysql-connector-java 8.0.17配置jpa的核心配置文件,要求在resources文件夹下创建META-INF文件夹,在内部创建名为persistence.xml的配置文件 之后可以右键查看模板创建文件 配置详细内容 org.hibernate.jpa.HibernatePersistenceProvider编写数据表对应的实体类 /** * 配置映射关系: * 实体类和表的映射关系 * 实体类中属性和表中字段的映射关系 */ @Data @Entity //声明此类是一个实体类 @Table(name = "student_info") //实体类和表的映射关系 public class student { @Id //设置主键 @GeneratedValue(strategy = GenerationType.IDENTITY) //设置主键自增 @Column(name = "sid") //实体类中属性和表中字段的映射关系 private int sid; //设置主键自增则该主键类型必须为int @Column(name = "sname") private String sname; @Column(name = "sage") private int sage; @Column(name = "ssex") private String ssex; public student() { } public student(String sid, String sname, int sage, String ssex) { this.sid = sid; this.sname = sname; this.sage = sage; this.ssex = ssex; } }2)、测试CRUD操作 public class test { /** * jpa的操作步骤 * 1、加载配置文件创建工厂类(实体管理器类工厂) * 2、通过实体管理器类工厂创建实体管理器类 * 3、获取事务对象,开启事务 * 4、完成CRUD操作 * 5、提交事务(或回滚事务) * 6、释放资源 */ @Test public void test01() { //1、加载配置文件创建工厂类(实体管理器类工厂) EntityManagerFactory jpa01 = Persistence.createEntityManagerFactory("jpa01"); //2、通过实体管理器类工厂创建实体管理器类 EntityManager em = jpa01.createEntityManager(); //3、获取事务对象,开启事务 EntityTransaction tx = em.getTransaction(); //获取事务对象 tx.begin(); //开启事务 //4、创建实体类对象,完成CRUD操作 student stu = new student(); //设置主键自增则创建的实体类不需要设置主键属性 stu.setSname("小杨JPA"); stu.setSage(1); stu.setSsex("男"); em.persist(stu); //保存操作 //5、提交事务(或回滚事务) tx.commit(); //6、释放资源 em.clear(); jpa01.close(); } } |
今日新闻 |
推荐新闻 |
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 |