ICode9

精准搜索请尝试: 精确搜索
  • 为啥国人喜欢Mybatis,而老外偏爱 Hibernate/JPA 呢?2021-05-25 21:56:56

    这是一篇很不错的文章,长见识,文章有点长,大家可以慢慢读。会有所收获的。 关于SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明: 本文不会下关于 Mybatis 和 JPA 两个持久层框架哪个更好这样

  • springboot整合vue,分享面经2021-05-20 15:59:55

    前言 Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC、slf4j 这些一样,只定义了一系列的接口。具体在使用的过程中,一般接入的是 Hibernate 的实现,那么具体的 Spring Data JPA 可以看做是一个面向对象的 ORM。虽然后端实现是 Hibernate,但是实际配置

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记: 用乐观锁避免并发问题2021-05-19 23:01:59

    乐观锁是由应用程序提供的一种机制,这种机制既能保证多个事务并发访问数据,又能防止第二类丢失更新问题。在应用程序中,可以利用Hibernate提供的版本控制功能来实现乐观锁。既可以用一个递增的整数来表示版本号,也可以用时间戳来表示版本号,跟踪数据库表中记录的版本。 下面介绍利用整

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:在程序中控制第二级缓存Cache2021-05-19 23:01:41

    EntityManager的detach()方法用于从第一级缓存中清除一个特定的对象。对于第二级缓存,JPA API提供了javax.persistence.Cache接口,它具有控制第二级缓存的evict()方法,能从第二级缓存的实体数据缓存中删除特定的数据。 javax.persistence.Cache接口只能控制实体数据缓存。如果要控制

  • 孙卫琴的《精通JPA与Hibernate》源代码下载2021-05-19 23:01:20

    孙卫琴的《精通JPA与Hibernate》的源代码下载

  • 快速入门JPA+SpringData 视频 学习笔记2021-05-19 22:30:55

    简介 快速入门JPA+SpringData 42个视频 9:30 分 https://www.bilibili.com/video/BV1Vb411e7of?p=1 P1-jpa概述 09:03 P2-mybatis-hibernate区别 18:09 P3-jpa常用ORM框架 02:31 P4-jpa-eclipse工具集成 08:01 P5-jpa添加示例

  • JPA多条件组合分页查询,精准查询,模糊查询,时间段查询2021-05-16 17:01:30

    public Page<Project> listProject(Pageable pageable, ProjectVO project) { return projectRepository.findAll(new Specification<Project>() { @Override public Predicate toPredicate(Root<Project> root, CriteriaQ

  • 来来来!java取地址栏参数2021-05-14 18:29:16

    前言 Spring Data JPA 是在 JPA 规范的基础上进行进一步封装的产物,和之前的 JDBC、slf4j 这些一样,只定义了一系列的接口。具体在使用的过程中,一般接入的是 Hibernate 的实现,那么具体的 Spring Data JPA 可以看做是一个面向对象的 ORM。虽然后端实现是 Hibernate,但是实际配置

  • Spring Boot使用Spring Data JPA 访问关系型数据库2021-05-14 11:01:24

    一、Spring Boot项目引入Spring Data步骤   第1步:引入 Spring Data JPA   如果你想在应用程序中使用 Spring Data JPA,首先需要在 pom 文件中引入 spring-boot-starter-data-jpa 依赖,如下代码所示: <dependency>      <groupId>org.springframework.boot</groupId>    

  • springboot jpa 的Sava方法,主键自增的问题2021-05-12 21:02:23

    SQL server数据库的表格设置id位自增1,通过java后台利用jpa语句向数据库存入数据时,报错如下: 解决方法: 在设置实体类文件时:在@id前加上: @GeneratedValue(strategy = GenerationType.IDENTITY)

  • Spring JPA设置复合主键2021-05-11 19:02:34

    Spring JPA设置复合主键 通常在一些多对多的实体中,会出现联合主键。就比如说在课程和学生之间,一门课程可以被多个学生所选,而一个学生可以选择多门课程。这时我们一般会在数据库中建立一张“学生-课程”表用来表示学生和课程之间多对多的关系。除了联合主键,有些表中也会出现复合

  • 使用spring-data-jpa碰到的坑2021-05-11 10:32:42

    @Override public List<CgSubject> queryByYearId(Integer yearId) { Specification<CgSubject> specification = (root, query, cb) -> { List<Predicate> predicates = new ArrayList<>(); // 所有的断言 predic

  • 数据持久化框架为什么放弃 Hibernate、JPA、Mybatis,最终选择 JDBCTemplate?2021-05-06 09:54:44

    因为项目需要选择数据持久化框架,看了一下主要几个流行的和不流行的框架,对于复杂业务系统,最终的结论是,JOOQ是总体上最好的,可惜不是完全免费,最终选择JDBC Template。Hibernate和Mybatis是使用最多的两个主流框架,而JOOQ、Ebean等小众框架则知道的人不多,但也有很多独特的优点;而JPA则是

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记: 用JPQL批量处理数据2021-05-05 13:01:51

    JPA的JPQL(JPA Query Language,JPA查询语言)不仅可以检索数据,还可以用于进行批量更新、删除和插入数据。批量操作实际上直接在数据库中完成,所处理的数据不会被保存在Session的持久化缓存中,因此不会占用内存空间。 Query.executeUpdate()方法和JDBC API中的PreparedStatement.executeU

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记: 通过JPA API调用存储过程2021-05-05 13:01:34

    以下SQL代码定义了一个名为findCustomers的存储过程,p_age为输入参数,p_count为输出参数: delimiter // create procedure findCustomers(in p_age integer,out p_count integer) begin select count(*) into p_count from CUSTOMERS where AGE>p_age; select name from CUSTOMERS; e

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:JPA的事件处理API的用法2021-05-05 12:51:16

    JPA API也提供了处理事件的办法,它主要包括两个步骤:(1)创建监听器类。(2)在持久化类中通过@EntityListeners注解来注册监听器。 1.创建监听器类 监听器类不需要实现特定的接口,可以是任意的Java类,例如以下MyLastUpdateListener类就是一个监听器类。 /* MyLastUpdateListener.java */ packa

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:用@ManyToMany注解映射双向关联2021-05-05 11:51:49

    假定建立了从Category(商品类别)类和Item(商品)类的双向多对多关联。在Category类中需要定义集合类型的items属性,并且在Item类也需要定义集合类型的categories属性。下图显示了Category类和Item类的关联关系。 下图显示了CATEGORIES表、ITEMS表和CATEGORY_ITEM表的结构。 在Category类

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:FetchType.LAZY延迟检索策略2021-05-05 11:51:24

    对于一对多关联和多对多关联,应该优先考虑使用默认的延迟检索策略。在Customer类中,以下代码对orders集合属性采用延迟检索策略: //采用默认的延迟检索策略 @OneToMany(mappedBy="customer") private Set<Order> orders = new HashSet<Order>(); 或者: //显式设置延迟检索策略 @OneToMa

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:映射Bag包(值类型的集合)2021-05-05 11:01:16

    Bag集合中的对象不按特定方式排序,但是允许有重复对象。在Java集合API中并没有提供Bag接口,Hibernate允许在持久化类中用List来模拟Bag的行为。假定Customer对象的images集合中允许存放重复的照片文件名,可以把images属性定义为List类型: private List<String> images=new ArrayList<St

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:EntityManager和Session的merge()方法详解2021-05-04 20:07:47

    JPA API 的EntityManager 以及Hibernate API的Session都有一个merge()方法,它们的作用相同,能够把一个游离对象的属性复制到一个持久化对象中。 当Session用update()方法关联一个游离对象时,如果在持久化缓存中已经存在一个同类型的并且OID相同的持久化对象,那么update()方法会抛出Non

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:JPA API的级联操作2021-05-04 20:07:28

    在JPA API中,javax.persistence.CascadeType类中定义了一些常量,分别表示特定的级联操作: CascadeType.PERSIST :当通过EntityManager的persist()方法来保存当前对象时,会级联保存所有关联的新建的临时对象。 CascadeType.REMOVE :当通过EntityManager的remove()方法来删除当前持久化对

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:用orphanRemoval属性映射父子关系2021-05-04 20:07:09

    以下是removeOrderFromCustomer()方法的代码,它先加载一个Customer对象,然后获得与Customer对象关联的一个Order对象的引用,最后解除Customer和Order对象之间的关系: tx = entityManager.getTransaction(); tx.begin(); //开始一个事务 //加载Customer对象 Customer customer=entity

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:映射一对多双向关联关系2021-05-04 20:06:50

    当类与类之间建立了关联,就可以方便地从一个对象导航到另一个或者一组与它关联的对象。例如,对于给定的Order对象,如果想获得与它关联的Customer对象,只要调用如下方法: //从Order对象导航到关联的Customer对象 Customer customer=order.getCustomer(); 在Order类中,用@ManyToOne注解映

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:比较JPA的EntityManager接口与Hibernate的Session接口2021-05-04 20:06:41

    本文对JPA的EntityManager接口与Hibernate的Session接口进行了比较,本文参考《精通JPA与Hibernate:Java对象持久化技术详解》,作者:孙卫琴。 EntityManager接口与Session接口的许多功能很相似,以下表对这两个接口的方法做了对比。 从以上表可以看出,EntityManager接口中的大部分方法在S

  • 孙卫琴的《精通JPA与Hibernate》的读书笔记:映射对象标识符的基本原理2021-05-04 20:06:26

    Java语言按内存地址来识别或区分同一个类的不同对象,而关系数据库按主键值来识别或区分同一个表的不同记录。Hibernate使用OID来统一两者之间的矛盾,OID是关系数据库中的主键(通常为代理主键)在Java对象模型中的等价物。 在运行时,Hibernate根据OID来维持Java对象和数据库表中记录的对

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有