Spring_Data_Jpa02(流程控制和基础知识)

**

一、源码分析:

**
1.通过JdkDynamicAopProxy创建动态代理对象;

2.动态代理对象:SimpleJpaRepositoty

3.实现了JpaRepository, JpaSpecificationExecutor接口

4.Spring 和Spring Data Jpa 的整合对符合Dao层spring data Jpa规范的接口进行扫描

5.通过EntityManager对象调用方法
在这里插入图片描述

二、一些简单方法使用:

1.findOne():通过Id进行查询;
立即加载,调用的EntityManager的find()方法

2.getOne();
需要手动添加事务:@Transcational 注解
延迟加载,调用的EntityManager的getReference()方法;
什么时候用,什么时候加载

3.Delete() :进行删除;

4.Save ():可以进行保存和更新功能:
4.1当主键Id为空时,进行添加操作
4.2当主键id不为空时,进行更新操作(一般需要配置查询操作)

5.Exists():判断id为这个的用户是否存在

6.Count() : 查询全部的数量

三、使用jpql语言进行复杂查询

需要添加上@Query注解
在这里插入图片描述

四、 对多个占位符进行赋值

jpql语句: from Customer where custName=? and custId=?

注:查询的是对象的属性名

多占位符赋值:

  1. 通过默认方式,根据顺序的方式对他赋值自动赋值;
  2. 通过索引的方式进行赋值;语法:?+数字

比如:from Customer where custName=?2 and custId=?1
意思:
1.custName使用的是第二个参数
2.custId使用的是第一个参数

五、进行增删改操作时

1.需要额外添加@modify注解;
意思:代表的是要对表进行更新操作

2.需要手动添加事务@Transaction

3.执行成功,数据库并没有进行改变的原因;
默认自动回滚;
解决:添加@Rollback(false); 不自动回滚

六、使用sql语言进行查询

对**@Query**注解的属性:
nativeQuery:
false 使用jpql语言 ;true 使用sql语言

七、Spring Data Jpa 提供的命名规则查询:

规则:findBy+(首字母大写)属性名称
翻译为 :from xxx(实体类) where 属性名=?
模糊查询:findBy+(首字母大写)属性名称+查询方式
多条件查询
findBy+(首字母大写)属性名称+查询方式+连接符号(And|Or)+属性名称

例如:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值