一.JPA的概念


为了节省时间,更加具体的解释我们就略过吧。

二.在IDEA中使用JPA

2.1.添加JAP依赖

添加相关的maven依赖

<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><hibernate.version>5.2.17.Final</hibernate.version><goda.time.version>2.9.9</goda.time.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!-- jdbc驱动包  --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.37</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.10.Final</version></dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-entitymanager</artifactId><version>4.3.10.Final</version></dependency><dependency><groupId>org.hibernate.javax.persistence</groupId><artifactId>hibernate-jpa-2.1-api</artifactId><version>1.0.0.Final</version></dependency><dependency><groupId>org.hibernate.common</groupId><artifactId>hibernate-commons-annotations</artifactId><version>4.0.5.Final</version></dependency><!--持久化依赖--><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${goda.time.version}</version></dependency><dependency><groupId>org.jadira.usertype</groupId><artifactId>usertype.core</artifactId><version>6.0.1.GA</version></dependency><dependency><groupId>antlr</groupId><artifactId>antlr</artifactId><version>2.7.7</version></dependency><dependency><groupId>dom4j</groupId><artifactId>dom4j</artifactId><version>1.6.1</version></dependency><dependency><groupId>org.jboss</groupId><artifactId>jandex</artifactId><version>1.1.0.Final</version></dependency><dependency><groupId>org.javassist</groupId><artifactId>javassist</artifactId><version>3.18.1-GA</version></dependency><dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging</artifactId><version>3.1.4.GA</version></dependency><dependency><groupId>org.jboss.logging</groupId><artifactId>jboss-logging-annotations</artifactId><version>1.2.0.Beta1</version><scope>provided</scope></dependency><dependency><groupId>org.jboss.spec.javax.transaction</groupId><artifactId>jboss-transaction-api_1.1_spec</artifactId><version>1.0.0.Final</version></dependency><dependency><groupId>javax.ejb</groupId><artifactId>ejb-api</artifactId><version>3.0</version></dependency></dependencies>

2.2.配置JPA运行环境

在IDEA中,resources文件夹下,也就是资源文件夹下,创建META-INF文件夹,在该文件夹下创建persistence.xml文件,添加以下配置。

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"xmlns="http://xmlns.jcp.org/xml/ns/persistence"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistencehttp://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"><persistence-unit name="MyJPA" transaction-type="RESOURCE_LOCAL"><properties><property name="javax.persistence.jdbc.driver"value="com.mysql.jdbc.Driver" /><property name="javax.persistence.jdbc.url"value="jdbc:mysql://localhost:3306/jpa" /><property name="javax.persistence.jdbc.user" value="root" /><property name="javax.persistence.jdbc.password" value="root" /><property name="hibernate.dialect"value="org.hibernate.dialect.MySQL5Dialect" /><property name="hibernate.show_sql" value="true" /><property name="hibernate.hbm2ddl.auto" value="update" /></properties></persistence-unit></persistence>

如下:

2.3.创建表

CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`password` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

2.4.在IDEA中配置数据源

在IDEA的右边有Database,按以下步骤操作即可。

这里也可以不配置,配置之后,可以在IDEA中直接看到数据库中的表,并且之后再IDEA中写的代码也不用有警告。

添加你的数据库名字,第一次配置下边会提示你下载插件,很具提示即可。

2.5.测试
创建User类

package com.hly.jpa.model.oneToOne;import javax.persistence.*;
/*** @author :hly* @github :github.com/SiriusHly* @blog :blog.csdn.net/Sirius_hly* @date :2018/9/27*/
@Entity
//指定表名,指定唯一约束
@Table(name = "user",uniqueConstraints = {@UniqueConstraint(columnNames = {"id","name"})})
public class User {@Id//指定主键@GeneratedValueprivate int id;@Columnprivate String name;@Columnprivate String password;//一对一映射@OneToOne(optional = true, cascade = CascadeType.ALL)@JoinColumn(name = "articleId", unique = true)public Article article;//省略了getter和setter
}
 /*** 获取应用管理的EntityManager*/@Testpublic void testApplicationEntityManager() {EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("MyJPA");EntityManager em = entityManagerFactory.createEntityManager();em.getTransaction().begin();User user = new User();user.setName("hly");//以上两行为新建状态//托管状态em.persist(user);//事务提交或调用flush()方法后会同步到数据库em.getTransaction().commit();//根据主键获取对象//System.err.println(em.find(User.class,1));//System.err.println(em.getReference(User.class,1));em.close();entityManagerFactory.close();}

数据库中插入数据则成功。

2.6.EntityManager接口

2.7.实体类中注解的含义

2.8.代码及地址思维导图

完整代码在笔者的github,欢迎访问。

JPA(一):十分钟入门 JPA相关推荐

  1. “易语言.飞扬”十分钟入门教程(修订版1,update for EF1.1.0)

    "易语言.飞扬"十分钟入门教程 (修订版1,update for EF1.1.0) 作者:liigo,2007.8.12 本文地址:http://blog.csdn.net/lii ...

  2. 自学python编程免费教程-Python十分钟入门 自学python基础教程送你参考

    python十分钟入门.简介Python是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. 特点 1 Pyt ...

  3. “易语言.飞扬”十分钟入门教程

    "易语言.飞扬"十分钟入门教程 作者:liigo 2007.1.1 原文链接:http://blog.csdn.net/liigo/archive/2007/01/01/14720 ...

  4. Azure IoT Hub 十分钟入门系列 (2)- 使用模拟设备发送设备到云(d2c)的消息

    本文主要分享一个案例: 10分钟- 使用Python 示例代码和SDK向IoT Hub 发送遥测消息 本文主要有如下内容: 了解C2D/D2C消息: 了解IoT Hub中Device的概念 了解并下载 ...

  5. linux pandas教程_十分钟入门 Pandas

    # 十分钟入门 Pandas 本节是帮助 Pandas 新手快速上手的简介.烹饪指南里介绍了更多实用案例. 本节以下列方式导入 Pandas 与 NumPy: In [1]: import numpy ...

  6. 【Python】【进阶篇】十二、Python爬虫的Xpath简明教程(十分钟入门)

    目录 十二.Python爬虫的Xpath简明教程(十分钟入门) 12.1 Xpath表达式 12.2 Xpath节点 12.3 节点关系 12.4 Xpath基本语法 12.4.1 基本语法使用 12 ...

  7. Azure IoT Hub 十分钟入门系列 (1)- 10分钟带你了解Azure IoT Hub 并创建IoT Hub

    建议您先对<Azure 上 IoT 整体解决方案概览 >进行了解. 本文主要分享一个案例: 10分钟-了解Azure IoT Hub并创建Azure IoT Hub 本文主要有如下内容: ...

  8. (转)十分钟入门pandas

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook . 习 ...

  9. Python数据分析pandas入门(一)------十分钟入门pandas

    Python数据分析基础 一.导入常用库 二.创建对象 三.查看数据 四.选取 五.通过标签选取 六.通过位置选取 七.布尔索引 八.赋值 九.缺失值处理 十.运算与统计 十一.Apply函数的作用 ...

最新文章

  1. 上海巨人网络参与网络诈骗整个流程
  2. oleVariant序列化对象
  3. Codeforces Round #529 (Div. 3) E. Almost Regular Bracket Sequence (括号配对,前缀和)
  4. 十年前乔布斯曾试图颠覆电视行业 如今苹果终于出手了
  5. 红旗linux系统可以运行QQ吗,如何在红旗Linux系统redflag6.0上安装QQ
  6. 发表优质书评,获得管家推荐【51CTO家园读书帮助】
  7. IDEA右键新建时没有Java Class选项
  8. protues仿真arduino串口通讯
  9. 《30天自制操作系统》学习笔记--Mac环境搭建
  10. Testing Types - 读书笔记
  11. 上了一堂健身课,27岁程序员尿尿像酱油!
  12. Android Wear 开发 (一),移动应用开发技术
  13. 呵呵,GET2017教育科技大会VIP门票,你要不要啊?
  14. ASM管理命令行三工具:KFOD、KFED和AMDU
  15. poj 4124:海贼王之伟大航路
  16. UIpath发送邮件--outlook和smtp----企业级
  17. Meth | git 常用命令
  18. springboot整合缓存Redis
  19. matlab的series函数怎么用,series函数
  20. fwr171改无线服务器,【成功分享】WR702N硬改成WR703N

热门文章

  1. AI扫雷有多牛?他国纷纷来求师学艺(附完整教程)
  2. 数据结构相关C语言代码
  3. 25、HTML 文本格式化
  4. Thymeleaf选择器引用公共片段
  5. Select2控件的使用
  6. Visual Studio.NET
  7. mysql 集群_MySQL之PXC集群搭建
  8. c++ fork 进程时 共享内存_linux共享内存mmap
  9. java批量生成订单号_【笔记6-支付及订单模块】从0开始 独立完成企业级Java电商网站开发(服务端)...
  10. 有了这篇网络排错思路大总结:我帮了不少同事~