- 博客(8)
- 收藏
- 关注
原创 MyBatis面试题,简单学习
它的原理是,使用CGLIB创建目标对象的代理对象,当调用目标方法时,进入拦截器方法,比如调用a.getB().getName(),拦截器invoke()方法发现a.getB()是null 值,那么就会单独发送事先保存好的查询关联B对象的sql,把B查询上来,然后调用a.setB(b),于是a的对象b属性就有值了,接着完成a.getB().getName()方法的调用。Mybatis动态sq可以在Xml映射文件内,以标签的形式编写动态sql,执行原理是根 据表达式的值完成逻辑判断并动态拼接sql的功能。
2024-08-13 17:04:02
442
原创 MyBatis知识点,简单学习
答:当MyBatis执行完一条select语句,拿到ResultSet结果集之后,会将其交给关联的ResultSetHandler进行后续的映射处理。2.核心处理层:MyBatis核心实现所在,其中涉及MyBatis初始化以及执行一条SQL语句的全流程。将业务对象交由IoC容器管理,由IoC容器控制业务对象的初始化以及不同业务对象之间的依赖关系。3.基础支撑层:整个MyBatis框架的地基,为整个MyBatis框架提供了非常基础的功能。2.实现数据库连接的重用,从而提高系统的响应速度。
2024-08-13 16:44:51
227
原创 架构师简单学习
百万级用户:使用反向代理和CDN加速响应;亿级用户:使用搜索引擎、NoSQL、消息队列与分布式服务。千万级用户:使用分布式文件系统和分布式数据库系统。十万级用户:使用缓存改善性能;万级用户:数据库与应用分离。系统性能优化的分层思想。
2024-08-13 16:33:40
366
原创 Reactor模型简单学习
5)Handler通过read读取数据,分发到worker线程池处理,处理完成后返回给Handler,Handler收到后,通过send将结果返回给client。5)通过read读取数据后,分发到worker线程池处理,处理完成后返回给Handler,Handler收到后,通过send将结果返回给client。3)如果是建立链接请求,则由Acceptor通过accept处理链接请求,然后创建一个Handler对象处理完成链接后的各种事件。
2024-08-13 16:26:12
276
原创 架构设计简单学习
越靠前的字段被用于索引过滤的概率越高,实际开发工作中建立联合索引时,要把区分度大的字段排在前面,这样区分大的字段越有可能被更多的SQL使用到 区分度 = distinct(column) / count(*) ,区分度就是某个字段column不同值的个数除以表的总行数,比如性别的区分度就很小,不适合建立索引或不适合排在联合索引列的靠前的位置,而uuid这类字段就比较适合做索引或排在联合索引列的靠前的位置。使用前缀索引是为了减小索引字段大小,可以增加一个索引页中存储的索引值,有效提高索引的查询速度。
2024-08-13 16:21:42
1506
原创 seata简单学习
定义:Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。AT模式 (AT模式支持的数据库有:MySQL、Oracle、PostgreSQL和 TiDB)两阶段提交协议的演变:一阶段:业务数据和回滚日志记录在同一个本地事务中提交,释放本地锁和连接资源。 二阶段: 提交异步化,非常快速地完成。 回滚通过一阶段的回滚日志进行反向补偿。
2021-11-30 16:21:50
2023
原创 ElasticSearch简单学习
本机已安装ES注意:9300端口为Eladticsearch集群间组件的通信端口,9200端口为浏览器访问的http协议RESTful端口实际生产环境中,经常会用到别名,因为索引可以很方便的修改,但是配置在代码中的索引名修改往往需要一定的代价创建索引 index_name,然后将它指向别名 my_indexPUT /index_name PUT /index_name/_alias/my_index 检测这个别名指向哪一个索引,或哪些别名指向这个索引GET /*/_alia..
2021-11-30 16:10:22
1374
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅