JPA学习笔记一 快速入门

一、什么是JPA

JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术,JPA可以理解为ORM的一种规范,JPA提供接口,ORM提供具体的实现。使用jpa可以不用关注具体的ORM框架,并且可以随意切换。以前我们的应用程序直接使用ORM框架,如hibernate,mybatis。但是不同的框架使用方法不一样,而JPA让我们以同样的方式访问不同的ORM框架。常用的框架是hibernate。


image.png

JPA与hibernate的关系

JPA是一个规范,不是框架
hibernate是JPA的实现

JPA的供应商

  1. hibernate
    JPA的始作俑者就是hibernate的作者
  2. OpenJPA
  3. TopLink

二、跑一下

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) DEFAULT NULL,
  `email` varchar(20) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
image.png

引入pom依赖


  4.0.0
  com.yjj
  JPA
  war
  1.0-SNAPSHOT
  JPA Maven Webapp
  http://maven.apache.org

  
    UTF-8
    4.3.8.Final
    5.1.40
    4.12
    1.8
  

  

    
      org.hibernate
      hibernate-core
      ${hibernate.version}
    
    
    
      org.hibernate
      hibernate-entitymanager
      ${hibernate.version}
    


    
      mysql
      mysql-connector-java
      ${mysql.version}
    

    
      junit
      junit
      ${junit.version}
      test
    

  

  
    jpa-single-table
    
      
        org.apache.maven.plugins
        maven-compiler-plugin
        
          ${java.version}
          ${java.version}
        
      
    
  

resource文件夹下新建META-INF新建persistentce.xml



    

        
        org.hibernate.ejb.HibernatePersistence

        
        com.yjj.entity.User

        
            
            
            
            
            

            
            
             
            
        
    

新建实体类

package com.yjj.entity;

import javax.persistence.*;

@Table(name="user")
@Entity
public class User {
    @Column(name="id")
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Id
    private Integer id;
    @Column(name="name")
    private String name;
    @Column(name="email")
    private String email;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

新建测试类

package com.yjj.jpa;

import com.yjj.entity.User;

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

public class TestJPA {
    public static void main(String[] args){
        //1.创建EntityManagerFactory
        String persistenceUnitName="jpa";
        EntityManagerFactory entityManagerFactory= Persistence.createEntityManagerFactory(persistenceUnitName);
        //2.通过EntityManagerFactory创建EntityManager
        EntityManager entityManager=entityManagerFactory.createEntityManager();
        //3.开启事务
        EntityTransaction transaction=entityManager.getTransaction();
        transaction.begin();
        //4.持久化操作
        User user=new User();
        user.setName("殷俊杰");
        user.setEmail("[email protected]");
        entityManager.persist(user);
        //5.提交事务
        transaction.commit();
        //6.关闭entityManager
        entityManager.close();
        //7.关闭EntityManagerFactory
        entityManagerFactory.close();
    }
}

String persistenceUnitName = “jpa”; 这个要和 persistence.xml 中的 
 一致(可以修改)
image.png

emm。。可能有点粗暴。。但就这样吧
参考文章
http://blog.csdn.net/u010837612/article/category/5732811

你可能感兴趣的:(JPA学习笔记一 快速入门)