JPA仅仅定义了一些接口,而接口是需要实现才能工作的。所以底层需要某种实现,而Hibernate就是实现了JPA接口的ORM框架
https://segmentfault.com/a/1190000021755149
我们原来使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,
获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。这时出现了Hibernate框架,它需要你创建一系列的持久化类,
每个类的属性都可以简单的看做和一张数据库表的属性一一对应。这样我们不用在关注数据库,只需要持久化类就可以完成增删改查的功能。
使我们的软件开发真正面向对象, 而不是面向混乱的代码。
实体对象≠持久化对象。因为实体对象涵盖更广泛,它可以是持久化对象,也可以是内存中的任何对象。
======================================================================
简单的理解entity,就是一个实体类,一般对应数据库中一张表,那为什么要有这个东西?那么就反过来想,为什么继承了JpaRepository
接口就不用写sql了,没有这个bean(什么是bean上)(什么是bean下)告诉springboot在数据库有这么一张表,表里有这些字段,springboot怎么能对数据库的表进行增删改查呢。
===============================================================================
@RequestMapping()
就是用来解析url并映射到controller中的方法,如下
/**
-
模糊查询并分页
-
@param userName
-
@return
*/
@RequestMapping(value = “/getUserByNamePage”,params = {“userName”,“currentPage”,“pageSize”})
public List getUserByNamePage(@RequestParam String userName,int currentPage,int pageSize){
return userService.getUserByNamePage(userName,currentPage,pageSize);
}
当后端接收到请求http://localhost:8081/getUserByNamePage?userName=张三¤tPage=1&pageSize=10
之后,会解析这个url获得getUserByNamePage
这一段,那么就匹配上了@RequestMapping("/getUserByNamePage")
,然后开始执行getUserByNamePage()
这个方法。
@RequestParam
是获取路径上的请求参数,注意和@PathVariable()
不同,这个是获取path参数,比如这种/getXXX/{id}
@RequestBody
是获取body里的参数
@RequestMapping
的参数有value、method、params、headers、consumes、produces
value:就是请求的url
@RequestMapping(value=“/getXXX”)
method:就是限定http的请求方式
@RequestMapping(value=“/getXXX”,method=RequestMethod.POST)
params:就是限定请求的参数,它支持简单的表达式
// 必须有username且不能等于xxx,必须有psw
@RequestMapping(value=“/getXXX”,params={“username!=xxx”,“psw”})
http://localhost:8080/getXXX?username=123&psw=666
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注Java)
最后
分享一些系统的面试题,大家可以拿去刷一刷,准备面试涨薪。
这些面试题相对应的技术点:
- JVM
- MySQL
- Mybatis
- MongoDB
- Redis
- Spring
- Spring boot
- Spring cloud
- Kafka
- RabbitMQ
- Nginx
- …
大类就是:
- Java基础
- 数据结构与算法
- 并发编程
- 数据库
- 设计模式
- 微服务
- 消息中间件
0152888)]
[外链图片转存中…(img-TTTsq0Wi-1712010152889)]
[外链图片转存中…(img-siWJ6gs5-1712010152889)]
[外链图片转存中…(img-ZRrX0CGN-1712010152889)]
[外链图片转存中…(img-QhYpwMWC-1712010152890)]