![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JPA
文章平均质量分 64
YellowStar007
每天学习一点点,每天提升一点点
展开
-
JPA学习 —— 第一课、认识JPA
JDBC什么是JPAJPA与hibernate的关系JPA的供应商JDBC在没有jdbc之前,针对各种数据库需要编写不同的繁杂的代码操作数据库。路径2而jdbc的出现结束了这种局面。jdbc是一组规范,是接口,由不同的数据库厂商各自提供相应的实现类,打包成jar包,也就是所谓的数据库驱动。而我们的java应用程序,只需要调用jdbc的接口就可以了。路径1而JPA是和jdbc类似的东西什么是JP...原创 2018-05-05 18:19:24 · 4215 阅读 · 0 评论 -
Spring-data-jpa 学习笔记(一)
一、spring-data-jpa的简单介绍SpringData : Spring 的一个子项目。用于简化数据库访问,支持NoSQL 和 关系数据存储。其主要目标是使数据库的访问变得方便快捷。SpringData 项目所支持 NoSQL 存储: MongoDB (文档数据库) Neo4j(图形数据库) Redis(键/值存储) Hbase(列族数据库)SpringData 项目所支持的关系数据存储...转载 2018-05-08 16:12:46 · 5303 阅读 · 0 评论 -
JPA学习 —— 第十四课、 关连查询
关于内连和外连内连接 就是inner join,关连双方互相关联,不是以哪一方为主。必须有关联到,如果没有关联到数据,则被舍弃。属于关联中最小集。 外连接 外连接out join 分为左(外)连接left (out) join 和右(外)连接right (out) join ,通常”外”可以省略。 left joinselect * from a left join b on a...原创 2018-05-08 12:31:10 · 5375 阅读 · 0 评论 -
JPA学习 —— 第十三课、使用二级缓存
一级缓存一级缓存是session级别的缓存,在JPA中一个entityManager对应一个session,一个session就对应一个缓存。查询两次id为1的userUser user1 = entityManager.find(User.class, 1);User user2 = entityManager.find(User.class, 1);结果发现只调用了一次sql...原创 2018-05-08 11:16:38 · 6107 阅读 · 0 评论 -
JPA学习 —— 第十二课、双向多对多关联关系
多对多关联比如现在有两个实体类:1. Product(商品)2. Category(类别)一个商品可以有多个类别,一个类别也可以有多个商品,这就形成了多对多的关系Product实体类package com.ssj.domain;import java.util.ArrayList;import java.util.List;import javax.persistenc...原创 2018-05-07 20:54:03 · 4958 阅读 · 0 评论 -
JPA学习 —— 第十一课、双向一对一关联关系
双向一对一关联关系一个部门有一个经理,一个经理管一个部门Department实体类package com.ssj.domain;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.GeneratedValue;import javax.persis...原创 2018-05-07 20:41:13 · 4896 阅读 · 0 评论 -
JPA学习 —— 第十课、双向一对多关联关系
双向一对多关联关系之前讲的都是单向的,而本文讲的是双向的(双向一对多 = 双向多对一)什么是双向?我们来对比一下单向和双向 单向多对一:需要在多方创建一方的引用,如:@ManyToOne@JoinColumn(name="DEPT_ID")private Department department;这时就可以在多方关联查询到一方的内容。单向一对多:需要在一方创...原创 2018-05-07 18:37:23 · 5023 阅读 · 0 评论 -
JPA学习 —— 第九课、单向一对多关联关系
一对多关联关系和多对一关联关系很相似Employee 实体类 – 多方不维护package com.ssj.domain;import java.util.Date;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.FetchType;impor...原创 2018-05-07 17:55:20 · 4801 阅读 · 0 评论 -
JPA学习 —— 第八课、单向多对一关联关系
多对一关联关系测试使用两个实体类: Employee 员工 Department 部门 一个员工可以有多个部门,一个部门只能有一个员工建立关联关系使用@ManyToOne注解映射多对一关联关系Department实体类 由于是单项多对一,所以作为一方不需要主动维护package com.sssp.domain;import javax.persistenc...原创 2018-05-07 17:43:33 · 4818 阅读 · 0 评论 -
JPA学习 —— 第七课、Eclipse使用JPA Tools反向生成带注解的实体类
1.首先在Eclipse建立数据库连接 先打开Data Source Explorer窗口 然后在Database Connection右击新建一个链接,进入这里 我这里用的是mysql数据库,选择点击Next 然后出现这个面板,点击红圈圈里的按钮配置驱动 然后弹出这个弹窗,我的驱动是5.1版本的,选择好了后点击JAP List 在这里面将默认存在的驱动remove...原创 2018-05-07 16:19:40 · 7181 阅读 · 1 评论 -
JPA学习 —— 第六课、EntityTransaction
EntityTransaction EntityTransaction 接口用来管理资源层实体管理器的事务操作。通过调用实体管理器的getTransaction方法 获得其实例。begin () 用于启动一个事务,此后的多个数据库操作将作为整体被提交或撤消。若这时事务已启动则会抛出 IllegalStateException 异常。 commit () 用于提交当前事务。即将事务启动以...原创 2018-05-06 18:20:31 · 4982 阅读 · 0 评论 -
JPA学习 —— 第五课、JPQL常用
SQL语句是在数据库空间中对字段,列,行进行操作JPQL语句是在EJB实体空间中面向对象,属性进行操作JPQL必须由JPA的JPQL解析器解析为SQL才能执行,必须先获取Query对象参数查询1、命名参数查询Query query = em.createQuery("select u from User u where u.age=:param");query.set...原创 2018-05-06 18:16:54 · 5400 阅读 · 0 评论 -
JPA学习 —— 第五课、JPA常用API详解
实体状态和转换JPA提供一个持久化上下文作为一级缓存,提供自动脏检查.对应某个id的实例在持久化上下文中只有一个对象. 查询时总是尝试在当前上下文中先搜索对象,不存在再触发数据库查询. 托管状态的bean会建立一个和缓存数据的联系,这时bean的属性改变同时会修改缓存数据,此时这条数据就变成了脏数据。实体状态详解 临时状态: 实际上就是new了一个普通的JavaBea...原创 2018-05-06 17:44:43 · 6230 阅读 · 0 评论 -
JPA学习 —— 第四课、JPA注解
常用基础注解@Entity必须@Entity(name=”“) 标注用于实体类声明语句之前,指出该Java 类为实体类,将映射到指定的数据库表。name为可选,对应数据库表名@Table可选 当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。@Ta...原创 2018-05-06 16:03:51 · 4349 阅读 · 0 评论 -
JPA学习 —— 第三课、spring整合JPA (完全版)
1.配置依赖 <!--版本控制 --> <properties> <mysql.version>5.1.34</mysql.version> <spring.version>4.3.0.RELEASE</spring.version> <hiberna...原创 2018-05-06 12:55:06 · 4351 阅读 · 0 评论 -
JPA学习 —— 第二课、spring整合JPA (不完全版 -- 手动控制事务)
这里是使用spring整合JPA,而且是不完全版,纯属是因为测试方便。如果想看原始的没用spring整合的JPA配置,请去这里: 创建JPA项目1. 依赖配置 <!--版本控制 --> <properties> <mysql.version>5.1.34</mysql.version> ...原创 2018-05-06 12:09:56 · 4854 阅读 · 0 评论 -
Spring-data-jpa 学习笔记(二)
通过上一篇笔记的,我们掌握了SpringData的相关概念及简单的用法。但上一篇笔记主要讲的是Dao层接口直接继承Repository接口,然后再自己定义方法。主要阐述了自定义方法时的一些规则及SpringData是如何来解析这些方法的。实际上,一些常用的方法SpringData已经帮我们定义好了,我们只需要定义Dao层接口时继承Repository的有相关功能子接口就ok了。本文主要讲的是Rep...转载 2018-05-08 17:27:05 · 4912 阅读 · 0 评论