JPA使用入门

  JPA能干什么?我在前面一遍文章步了解JPA》基本描述了。不过你不需要点击回去再看。这里简单的再提一下JPA的功能,就是:(1)实现“对象-关系”映射;(2)对象持久化到数据库;(3)对象查询。

  JPA要怎么用,我们直接入手来跑起一个JPA的demo,我这里是采用Hibernate的JPA实现。

  (1)创建一个普通java工程。

  (2)导入必要的包。

    从Hibernate官方下载一个基本包,我这里下载后得到的是hibernate-release-5.0.4.Final.zip。解压后可以文件结构大概如下:

      

    其中lib文件夹就是我们需要导入到项目中的包。简单的实现,导入required、jpa、jpa-metamodel-generator文件夹下的所有jar包既可。

    另外,不要忘了导入JDBC驱动。我这里用的是mysql的。从MySQL官网下的mysql-connector-java-5.1.37.zip。解压导入就行

  (3)创建配置文件

    JPA有一个硬性要求,配置文件必须是类路径下的META-INF目录下的persistence.xml。在我这里可以看到

    

    文件的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<persistence
  version="1.0"
  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">
  <persistence-unit name="test" transaction-type="RESOURCE_LOCAL">
  <properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
    <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
    <property name="hibernate.connection.username" value="root" />
    <property name="hibernate.connection.password" value="root" />
    <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/jpa" />
    <property name="hibernate.max_fetch_depth" value="3" />
    <property name="hibernate.hbm2ddl.auto" value="update" />
  </properties>
  </persistence-unit>
</persistence>

  如果你的数据库设置和我不一样,自己改一下配置文件。相信一看就懂 ^_^

  (3)代码

  我这里先写两个类。

    

  TestBasic类内容如下:

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import entity.Person;

public class TestBasic {

  public static void main(String[] args) {
    EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");
    EntityManager entityManager = factory.createEntityManager();

    Person person = new Person();
    person.setName("袁");

    entityManager.getTransaction().begin();
    entityManager.persist(person);
    entityManager.getTransaction().commit();

    entityManager.close();
    factory.close();
  }

}

  Person.java如下:

package entity;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Person {

  @Id
  private int id;
  private String name;

  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }

}

  数据库中只是建好了jpa库,里面没有表。

  运行这段代码,就可以看到数据库中表被建立起来了。表名和类名Person有点类似,是person。并且有数据了。

  

  很明显,可以知道这其实就是对数据库的插入操作。那么怎么查询呢。

  在TestBasic类中改一下代码。

  main方法里这样写:

  

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");
EntityManager entityManager = factory.createEntityManager();

Person person = entityManager.find(Person.class, 0);//刚才在数据库里看到,id是0。
System.out.println(person.getName());

entityManager.close();
factory.close();

  运行代码你会看到打印出“袁”。

  那么改操作呢:

  继续改main方法里的代码:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");
EntityManager entityManager = factory.createEntityManager();

entityManager.getTransaction().begin();
Person person = entityManager.find(Person.class, 0);//刚才在数据库里看到,id是0。
person.setName("邓");
entityManager.getTransaction().commit();

entityManager.close();
factory.close();

  可以看到数据里的数据变了。

  

  最后一个操作,删除数据。

  main方法中的代码改成如下:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("test");
EntityManager entityManager = factory.createEntityManager();

entityManager.getTransaction().begin();
Person person = entityManager.find(Person.class, 0);//刚才在数据库里看到,id是0。
entityManager.remove(person);
entityManager.getTransaction().commit();

entityManager.close();
factory.close();

  运行这段代码,发现数据库里的person表没数据了。

  JPA的增删改查的演示操作就此完成了。

时间: 2024-10-12 17:28:51

JPA使用入门的相关文章

《Spring Data JPA从入门到精通》内容简介、前言

内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询方法.定义查询方法.注解式查询方法.@Entity实例里面常用注解详解.JpaRepository扩展详解.JPA的MVC扩展REST支持.DataSource的配置.乐观锁.SpEL表达式在Spring Data里面的应用.Spring Data Redis实现cacheable的实践.Intel

JPA开发入门实例

一. 什么是JPA JPA是sun官方提出的Java持久化规范, 它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据, 它的出现主要是为了简化现有的持久化开发工作和整合ORM技术. JPA总体思想和现有的Hibernate.TopLink等ORM框架大体一致. 总的来说, JPA包括以下3方面的技术: 1. ORM映射元数据(JPA支持XML和注解两种元数据的形式) - 元数据描述对象和表之间的映射关系. 2. Java持久化API: 用来操作实体对象, 执行CRUD

JPA的入门CRUD

主要目的: 操作实体类就相当于操作数据库表 建立两个映射关系: 实体类和表的映射关系 实体类中的属性和表中字段的映射关系 不在关注sql语句 常见的orm框架:Mybatis(ibatis).Hibernate.Jpa JPA的全称是Java Persistence API, 即Java 持久化API,是SUN公司推出的一套基于ORM的规范,内部是由一系列的接口和抽象类构成. JPA规范本质上就是一种ORM规范,注意不是ORM框架——因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些

整合Spring Data JPA与Spring MVC: 分页和排序

之前我们学习了如何使用Jpa访问关系型数据库.比较完整Spring MVC和JPA教程请见Spring Data JPA实战入门,Spring MVC实战入门. 通过Jpa大大简化了我们对数据库的开发工作.但是,之前的例子中我们只提到了最简单的CRUD(增删改查)操作.实际上,Spring Data Jpa对于分页以及排序的查询也有着完美的支持,接下来,我们来学习如何通过Pageable来对数据库进行分页查询. 添加maven依赖 首先我们需要引入Jpa,数据库直接使用hsqldb内存数据库就可

【Spring Data 系列学习】Spring Data JPA 自定义查询,分页,排序,条件查询

Spring Boot Jpa 默认提供 CURD 的方法等方法,在日常中往往时无法满足我们业务的要求,本章节通过自定义简单查询案例进行讲解. 快速上手 项目中的pom.xml.application.properties与 Chapter1 相同 实体类映射数据库表 user 实体类 @Entity public class User implements Serializable { private static final long serialVersionUID = -39076354

JPA入门例子

(1).JPA介绍: JPA全称为Java PersistenceAPI ,Java耐久化API是Sun公司在Java EE 5标准中提出的Java耐久化接口.JPA吸取了当前Java耐久化技能的长处,旨在标准.简化Java目标的耐久化作业.运用JPA耐久化目标,并不是依赖于某一个ORM结构.      为何要运用JAP?      在说为何要运用JPA之前,咱们有必要了解为何要运用ORM技能. ORM 是Object-Relation-Mapping,即目标联系暗射技能,是目标耐久化的中心.O

Spring Data 系列(二) Spring+JPA入门

通过[Spring Data 系列(一) 入门]的介绍,通过对比的方式认识到Spring提供的JdbcTemplate的强大功能.通过使用JdbcTemplate,操作数据库,不需要手动处理Connection,Statement等底层SQL对象.可是,Spring对数据库的操作还远远没有结束.本章主要介绍Spring 对JPA的支持. 主要内容 简单介绍JPA Spring Hibernate JPA整合 1.JPA简介 Java Persistence API (JPA),为开发人员提供了一

JPA入门例子(采用JPA的hibernate实现版本) 转

JPA入门例子(采用JPA的hibernate实现版本) jpahibernate数据库jdbcjava框架(1).JPA介绍: JPA全称为Java Persistence API ,Java持久化API是Sun公司在Java EE 5规范中提出的Java持久化接口.JPA吸取了目前Java持久化技术的优点,旨在规范.简化Java对象的持久化工作.使用JPA持久化对象,并不是依赖于某一个ORM框架. 为什么要使用JAP? 在说为什么要使用JPA之前,我们有必要了解为什么要使用ORM技术. OR

JPA入门案例详解(附源码)

1.新建JavaEE Persistence项目 2.导入相关Jar包 3.修改persistence.xml <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> <persistence-unit name="N