框架学习之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中创建了表,储存了数据,并且表结构和名称和我们声明的一样

JPA学习(一、JPA_Hello World)的更多相关文章

  1. JPA学习---第一节:JPA详解

    一.详解 JPA JPA(Java Persistence API)是Sun官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据.他的出现主要是 ...

  2. Spring学习---JPA学习笔记

    用了一段时间的Spring,到现在也只是处于会用的状态,对于深入一点的东西都不太了解.所以决定开始深入学习Spring. 本文主要记录JPA学习.在学习JPA之前,需要了解一些ORM的概念. ORM概 ...

  3. JPA学习笔记(8)——映射一对多关联关系

    一对多关联关系 本文有很多和多对一是一样的,因此不会写得非常具体. 有看不懂的.能够參考JPA学习笔记(7)--映射多对一关联关系 Order实体类 package com.jpa.helloworl ...

  4. JPA学习(六、JPA_JPQL)

    框架学习之JPA(六) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  5. JPA学习(五、JPA_二级缓存)

    框架学习之JPA(五) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  6. JPA学习(四、JPA_映射关联关系)

    框架学习之JPA(四) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  7. JPA学习(三、JPA_API)

    框架学习之JPA(三) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  8. JPA学习(二、JPA_基本注解)

    框架学习之JPA(二) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...

  9. Spring Data JPA 学习记录1 -- 单向1:N关联的一些问题

    开新坑 开新坑了(笑)....公司项目使用的是Spring Data JPA做持久化框架....学习了一段时间以后发现了一点值得注意的小问题.....与大家分享 主要是针对1:N单向关联产生的一系列问 ...

随机推荐

  1. 【神经网络与深度学习】caffe+VS2013+Windows无GPU快速配置教程

    首先来一波地址: happynear大神的第三方caffe:http://blog.csdn.net/happynear/article/details/45372231 Neil Z大神的第三方ca ...

  2. 初步学习jquery学习笔记(五)

    jquery学习笔记五 jquery遍历 什么是遍历? 从某个标签开始,按照某种规则移动,直到找到目标标签为止 标签树 <div> <ul> <li> <sp ...

  3. PythonDay12

    day12内置_函数 今日内容 生成器 推导式 内置函数一 生成器 什么是生成器?生成器的本质就是一个迭代器 迭代器是python自带的 生成器是程序员自己写的一种迭代器 生成器编写方式: 1.基于函 ...

  4. filebeat收集日志传输到Redis集群,logstash从Redis集群中拉取数据

    前提:已配置好Redis集群,并设置的有统一的访问密码 架构是filebeat-->redis集群-->logstash->elasticsearch,需要修改filebeat的输出 ...

  5. VSCode使用Remote-SSH远程服务器

    VSCode的Remote-SSH 之前一直使用的xshell5,现在在window上必须要升级方可使用,在mac上没法安装学习版.于是就想着vscode能不能实现这一需求. 微软开发了一个VSCod ...

  6. Git小结---So far.......

    基本的: 1. 在配置了SSH Key的情况下,clone项目时使用:git clone git@github.com/用户名/仓库名.git  使用这种方式而不使用https的方式的好处在于,在pu ...

  7. git大全转

    git原理:https://git-scm.com/book/zh/v2 http://blog.xiayf.cn/2013/09/28/learning-git-internals-by-examp ...

  8. 隐藏ie input的X和眼睛图标

    IE10+ /** 文本输入框的 X **/input::-ms-clear{display: none;}/** 密码输入框的 X **/input::-ms-reveal{display: non ...

  9. TensorFlow——LSTM长短期记忆神经网络处理Mnist数据集

    1.RNN(Recurrent Neural Network)循环神经网络模型 详见RNN循环神经网络:https://www.cnblogs.com/pinard/p/6509630.html 2. ...

  10. 应急响应中find命令总结

    在应急响应中,我们经常会使用find命令来查找系统中被黑客修改过的文件,或者被上传的木马后门文件,灵活使用find命令可以达到事半功倍的效果,现总结下使用技巧 举例,查找最近被更改的jsp文件 fin ...