Java框架总结,jdk新特性面试题

  • 依赖反射,反射影响进程。

  • 太过于依赖设计模式。

  • 控制器过于灵活。

  • 不支持分布式应用。

Spring常用注解(绝对经典)

Spring视频教程–颜群

3、hibernate

(1)基本概念

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

(2)hibernate的核心构成和执行流程图

![](https://imgconvert.csdnimg.cn/aHR0cH 需要zi料+ 绿色徽【vip1024b】

M6Ly9vc2NpbWcub3NjaGluYS5uZXQvb3NjbmV0L3VwLWY0ZWIyMmVkMDFkMWI5YzE3OTNkYzEzYzg5MjdhMDlkMWM0LnBuZw?x-oss-process=image/format,png)

(3)hibernate的优点

  • 对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

  • Hibernate是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了。

  • 透明持久化(persistent)带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的javabeans/POJO,(POJO概念,plain ordinary java object,简单的java对象,可以简单理解为简单的实体类entity。)这个对象没有实现第三方框架或接口,唯一特殊的是他们正与session关联。一旦这个session被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。

  • 事务transaction应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的JDBC、JTA(java transaction API,JTA允许应用程序执行分布式事务处理,在两个或多个网络计算机资源访问并且更新数据,JDBC驱动程序的JTA支持极大地增强了数据访问能力)以及CORBA(公用对象请求代理程序体系结构,common object request broker architecture,简而言之,CORB允许应用程序和其它的应用程序通讯)事务隔离开。某些情况下,一个session之内可能包含多个transaction对象,事务边界的开启与关闭时必不可少的。

  • 它没有侵入性,是轻量级框架。

  • 移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。

  • 缓存机制,提供一级缓存和二级缓存。

一级缓存:是session级别的缓存,一个session做了一个查询操作,它会把这个操作的结果放到一级缓存中,如果短时间内这个session又做了同一个操作,那么hibernate直接从一级缓存中拿出,而不会去连数据库取数据。

二级缓存:是sessionFactory级别的缓存,就是查询的时候会把结果缓存到二级缓存中,如果同一个sessionFactory创建的某个session执行了相同的操作,hibernate就会从二级缓存中拿出结果,而不会再去连接数据库。

(4)hibernate的缺点

  • 持久层封装过于完整,导致开发人员无法对SQL进行优化,无法灵活应用原生SQL。

  • 批量数据处理的时候较为弱势。

  • 框架中使用ORM原则,导致配置过于复杂,遇到大项目,维护问题不断。

Hibernate实现CRUD(附项目源码)

为什么很多人不愿意用hibernate了?

尚硅谷Java视频_SSH整合&综合案例 视频教程

手动实现教程源码:

链接: https://pan.baidu.com/s/1BK0V1wxA-GQrWco10WEzeg 提取码: 2e3e

二、SSM


SSM架构,是三层结合所成的框架,分别是Spring、SpringMVC、MyBatis所组成。Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC代表了model、view、controller接收外部请求,进行开发和处理。mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。

1、spring

详细介绍见SSH中spring。

2、SpringMVC

(1)基本概念

属于spring框架的一部分,用来简化MVC架构的web应用程序开发。

(2)SpringMVC的优点

  • 拥有强大的灵活性,非侵入性和可配置性

  • 提供了一个前端控制器dispatcherServlet,开发者无需额外开发控制器对象

  • 分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成

  • 可以自动绑定用户输入,并正确的转换数据类型

  • 可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。

(3)SpringMVC的缺点

  • servlet API耦合难以脱离容器独立运行

  • 太过于细分,开发效率低

SpringMVC中put和post如何选择

GET和POST的区别

@RequestParam、@ModelAttribute、@RequestBody的区别

HttpServletResponse response实现文件上传、下载

3、mybatis

(1)基本概念

mybatis是一个简化和实现了java数据持久层的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互。

(2)mybatis的优点

  • 与JDBC相比,减少了50%以上的代码量。

  • mybatis是最简单的持久化框架,小巧并且简单易学。

  • mybatis灵活,不会对应用程序或者数据库的限售设计强加任何影响,SQL写在XML里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。

  • 提供XML标签,支持编写动态SQL语句(XML中使用if,else)。

  • 提供映射标签,支持对象与数据库的ORM字段关系映射(在XML中配置映射关系,也可以使用注解)

(3)mybatis的缺点

  • SQL语句的编写工作量较大,对开发人员的SQL语句编写有一定的水平要求。

  • SQL语句过于依赖数据库,不能随意更换数据库。

  • 拼接复杂SQL语句时不灵活。

【MyBatis 基础知识总结 1】SQL注入

【MyBatis 基础知识总结 2】MyBatis-Plus

MyBatis常用标签和注解(绝对经典)

MyBatis事务管理

MyBatis逆向工程(Example + Criteria简介)

MyBatis xml配置文件详解

Spring JdbcTemplate简介

纯干货,Spring-data-jpa详解,全方位介绍。

尚硅谷SSM整合视频教程雷丰阳雷大神讲解

SpringMVC视频教程–颜群

颜群版SSM整合示例

示例源码:

链接:https://pan.baidu.com/s/1NIDjQ5wRBN9hNc_4G1Nhng

提取码:18vi

我的面试宝典:一线互联网大厂Java核心面试题库

以下是我个人的一些做法,希望可以给各位提供一些帮助:

整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!

image

283页的Java进阶核心pdf文档

Java部分:Java基础,集合,并发,多线程,JVM,设计模式

数据结构算法:Java算法,数据结构

开源框架部分:Spring,MyBatis,MVC,netty,tomcat

分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等

微服务部分:SpringBoot,SpringCloud,Dubbo,Docker

image

还有源码相关的阅读学习

image

文档**

Java部分:Java基础,集合,并发,多线程,JVM,设计模式

数据结构算法:Java算法,数据结构

开源框架部分:Spring,MyBatis,MVC,netty,tomcat

分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等

微服务部分:SpringBoot,SpringCloud,Dubbo,Docker

[外链图片转存中…(img-uNiZBdEM-1710356624687)]

还有源码相关的阅读学习

[外链图片转存中…(img-n8L9uQn8-1710356624688)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值