JPA 소개 및 (다운로드 코드) 빌드하여 HelloWorld

장면

주요 JDBC 데이터베이스와의 관계를 이해하는 것이 우선 JPA를 학습하기 전에.

오래 전에 MySQL과 오라클, SQLSERVER, DB2와 같은 등등 많은 데이터베이스가 있었다. 응용 프로그램이 리드는 데이터베이스를 사용하는 데이터베이스 API에 연결합니다.

JDBC가 나타 그래서, 우리는 사양의 집합, JDBC 응용 프로그램에 의해 호출을 정의하고 필요한 데이터베이스를 호출합니다.

 

 

참고 :

블로그 홈 페이지 :
https://blog.csdn.net/badao_liumang_qizhi
대한 대중의 우려 번호
원숭이 위압적 프로그램을
무료로 다운로드 인수 관련 프로그래밍 전자 책, 자습서 및 푸시.

실현

JPA 무엇입니까

자바 퍼시스턴스 API : 객체 영속성을위한 API

액세스 영속 계층에 균일 한 방법으로 응용 프로그램을 가능하게 자바 EE5.0 플랫폼 표준 ORM 사양.

 

 

관계 JPA와 최대 절전 모드

1.JPA의 하이버 네이트와 JDBC JDBC 드라이버 간의 관계와 유사한, 추상적이다.

2.JPA이 규범의 JPA ORM 사양은 자연의 종류가 아닌 ORM 프레임 워크입니다. JPA ORM 구현을 제공하지 않기 때문에, 그냥 표준을 제공하는 프로그래밍 API 인터페이스의 수 있지만, ORM 공급 업체 구현하여 특정 실현을 개발했다.

3.Hibernate 달성된다 절전 부가 ORM 프레임 워크로, 그것은 또한 실현 JPA 인

JPA의 장점

표준화 : 같은 API를 제공 할 수있는 약간의 수정 후 JPA 기반으로 엔터프라이즈 애플리케이션의 개발을위한 다른 JPA 프레임 워크에서 실행할 수 수 있도록합니다.
사용하기 쉬운, 쉽게 통합 다음 JPA의 주요 목표 중 하나는 엔티티를 생성하고, 단지 javax.persistence.Entity의 주석을 사용하여 단순하게 JPA 프레임 워크 자바 클래스를 만들 수있는 간단한 프로그래밍 모델을 제공하는 것입니다, JPA 프레임 워크와 인터페이스 또한 매우 간단합니다,
JDBC 쿼리 기능 비교 : 제공 할 수있게에만 SQL 그래서 보통 HAVING하고, JPA 쿼리 언어는 객체 지향, JPA는 독특한 JPQL을 정의하고, 배치 업데이트를 지원하고 수정, GROUP BY에 가입하실 수 있습니다 고급 쿼리 기능, 심지어 하위 쿼리를 지원 할 수 있습니다.
지원의 고급 기능을 객체 지향 : JPA는, 같은 클래스, 클래스 사이의 복잡한 관계, 그리고 다형성 사이의 상속과 같은 고급 객체 지향 기능을 지원 객체 지향 모델의 사용을 극대화 할 수 있습니다

JPA의 기술적 측면을 포함한 3

ORM 매핑 메타 : JPA 개체 및 매핑 테이블, 엔티티 객체는 데이터베이스 테이블에 유지함으로써, 프레임 간의 관계를 설명 개의 메타 데이터 및 XML JDK 5.0 특수 형태의 메타 데이터를 지원한다. 
JPA의 API : CRUD 작업을 물리적 객체를 조작 수행하는 데 사용이 프레임 워크는 백그라운드에서 모든 작업을 수행하기 위해, 지루한 JDBC와 SQL 코드에서 해방 개발자. 
쿼리 언어 (JPQL) :이 오히려 객체 지향 쿼리 데이터에 대한 데이터베이스 쿼리 언어, 특정 절차보다 SQL의 긴밀한 결합을 방지하기 위해 지속적인 작업의 매우 중요한 측면이다.

빌드하여 HelloWorld

열기 이클립스 파일 - 새로운 JPA 프로젝트

 

 

다음을 클릭합니다

 

 

자신의 JDK 및 JPA 버전 여기를 대상 런타임을 선택하려면 여기 한 후 다음을 클릭 한 후 다음을 클릭하고, 2.0

 

 

먼저, EclipseLink가이 오른쪽에있는 다운로드 버튼을 클릭하지 않습니다이 페이지에 온

 

 

EclipseLink2.5.2을 여기에, 지정된 버전의 다운로드를 선택 선택 옆에 클릭

下载完成点击Finish后项目结构如下

 

 

会自动生成一个persistence.xml

加入依赖

在项目下新建lib目录,然后加入相关jar包

 

 

修改配置文件

双击打开上面的persistnece.xml,选择Connection视图,然后选择Transaction Type 为Resource Local

然后依次配置好数据库的驱动等,其中URL中jpa对应的就是数据库名。

 

 

然后保存,使用Source视图查看,此时在properties下就会有如下代码

<properties>
 <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
 <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="123"/>  
</properties>

 

然后再在配置文件中加入Hibernate相关的配置信息。

 

 <property name="hibernate.format_sql" value="true"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.hbm2ddl.auto" value= "update"/>

 

新增实体类 

在src下新建包com.badao.jpa.helloworld

包下新建实体类Customer,通过添加注解的方式完成实体类到数据库的映射。

1.在类名上添加@Entity表明是实体类。

2.在类名上添加@Table注解,并使用name属性与数据库中的表名相对应。

3.在主键ID的get方法上使用@Id声明是主键,并使用@GeneratedValue注解声明主键策略。

4.在某些实体类属性名与数据库列名不对应的属性的get方法上要使用@Column注解进行映射。

package com.badao.jpa.helloworld;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="JPA_CUSTOMERS")
public class Customer {
 
 
 private Integer id;
 
 private String lastName;

 private String email;
 
 private int age;
 
 @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Id
 public Integer getId() {
  return id;
 }
 public void setId(Integer id) {
  this.id = id;
 }
 
 @Column(name="LAST_NAME")
 public String getLastName() {
  return lastName;
 }
 public void setLastName(String lastName) {
  this.lastName = lastName;
 }
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
 

}

 

添加完实体类后还要回到配置文件中添加一行配置

<class>com.badao.jpa.helloworld.Customer</class>

 

完整配置文件代码

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
 <persistence-unit name="HelloJPA" transaction-type="RESOURCE_LOCAL">
  
  <!-- 添加持久化类 -->
  <class>com.badao.jpa.helloworld.Customer</class>
  <properties>
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
   <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="523627"/>
   
   <!-- 配置 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>
</persistence>

 

新建表

打开数据库jpa并新建表jpa_customers,设计字段如下

 

 

 

新建启动类

在包下新建Main类,然后编写main方法

package com.badao.jpa.helloworld;

import java.util.Date;

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 = "HelloJPA";
  
    
  EntityManagerFactory entityManagerFactory = 
    Persistence.createEntityManagerFactory(persistenceUnitName);
        
  //2. 创建 EntityManager. 类似于 Hibernate 的 SessionFactory
  EntityManager entityManager = entityManagerFactory.createEntityManager();
  
  //3. 开启事务
  EntityTransaction transaction = entityManager.getTransaction();
  transaction.begin();
  
  //4. 进行持久化操作
  Customer customer = new Customer();
  customer.setAge(12);
  customer.setEmail("[email protected]");
  customer.setLastName("Badao");
  
  
  entityManager.persist(customer);
  
  //5. 提交事务
  transaction.commit();
  
  //6. 关闭 EntityManager
  entityManager.close();
  
  //7. 关闭 EntityManagerFactory
  entityManagerFactory.close();
 }
}

 

然后运行main方法

 

 

然后刷新数据库中的数据 


 

 

 

示例代码下载

关注公众号:

霸道的程序猿

回复:

HelloJPA

추천

출처www.cnblogs.com/badaoliumangqizhi/p/12016153.html