SSM,数据库

1. 数据库

1.1 产品

关系型:Mysql、Oracle、SqlServer、DB2。。。
非关系型:Redis、ES…

1.2 SQL的优化

参考帖子:https://blog.csdn.net/u012932876/article/details/117359992
1,用字段名代替*
2,where里尽量不要用or
3,在做表设计时,尽量用varchar代替char
4,观察SQL的执行性能,使用关键字explain,目的就是观察SQL有没有使用索引
5,做模糊查询时,尽量确定开始的元素 where name like ‘a%’

1.3 数据库的优化

索引:好处就是可以提高查询效率,坏处是本身索引就是一张表占内存,更新数据也比较难。
索引设计的原则:如果经常按照固定的列查询,最好就给这个列加索引
select * from student where name=??? #使用索引
alter table student add index 索引名(name) #创建索引
视图:本质上就是一张表,把查询结果缓存起来。
create view studentView as select * from student where name=??? #创建视图
select * from studentView #使用视图

分库分表分桶、、、、

2. 框架

SpringMVC:接受请求@RestController/@RequestMapping 和处理响应(给客户端响应JSON串)
SpringMVC的工作原理:五个组件
DispathcherServlet:前端控制器,接受请求,分发请求
HandlerMapping:处理器映射器,根据url找到干活的Controller和方法
HandlerAdaptor:处理器适配器,就是干活的。Controller<->Serice<->Dao<->DB
ViewResolver:视图解析器,解析响应的数据
View:渲染视图,在页面上刷新数据
Spring :粘合剂,核心功能:IOC 、 DI、 AOP
IOC :控制反转,把创建对象都叫给spring框架,对象默认都是单例的(单例设计模式&工厂设计模式)
@Component
class Car{}
Class.forName(“cn.tedu.pojo.Car”).newInstance(); //IOC的核心,框架底层都是反射
DI:依赖注入,把两个对象set
new Teacher();
new Student();
@Autowired
new Student().setTeacher(new Teacher());//DI的核心,维护了两个对象的关系
AOP:面向切面编程,松耦合,核心业务和切面分开
切面
切点
连接点
通知

2.2 Mybatis:操作数据库,封装了JDBC,自动ORM

原理:
#和$取值的区别:
$只取值本身,没有拼串的功能 where name=jack ,底层使用Statement工具类不安全,可能发生SQL注入攻击问题,低效
#可以自动拼接双引号,where name=“jack”,底层使用PreparedStatement工具类安全,安全,高效
resultType和resultMap的区别:
ORM:是指对象关系映射。是指从表里获取字段的值 自动 交给类里的属性 保存
resultType:只能完成简单的ORM,如果字段名字 和 属性的名字一致
resultMap:只能完成复杂的ORM,如果字段名字 和 属性的名字不一致,需要单独处理
Mybatis的缓存机制:一级缓存,二级缓存,使用LRU算法
设计到的设计模式:工厂模式,代理模式,单例模式…

3. 前端

Vue的组件,渐进式,路由。。。。
JS的原生写法

4. 面试题

框架:原理、源码
专业术语:OOM / RPC / OCP / ORM / NIO …

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值