自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 收藏
  • 关注

原创 Mybatis中#{}和${}的区别是什么?

{}:防sql注入(把输入当作纯数据,不会当成代码。${}: 有注入风险(字符串替换)

2025-03-29 21:04:58 199

原创 什么是SQL注入

防御核心:预编译语句(Prepared Statements) + ORM框架(如MyBatis)。SQL注入的本质:通过用户输入篡改SQL语义。辅助措施:输入过滤、最小权限、WAF。

2025-03-29 20:54:25 137

原创 Mybatis存在哪些优点和缺点

优点:

2025-03-29 20:22:04 143

原创 spring自动配置原理

2025-03-29 20:13:38 220

原创 SpringBoot中常⽤注解及其底层实现

@Controller、@Service、@ResponseBody、@Autowired

2025-03-29 19:31:48 407

原创 Spring Boot、Spring MVC 和 Spring 有什么区别

2025-03-29 19:24:43 116

原创 SpringMVC的底层⼯作流程

☆接收(controller),操作数据(handler),视图(view)

2025-03-29 12:25:31 129

原创 Spring的事务传播行为

事务传播行为:是当一个事务方法(B)被事务方法(A)调用时,(B)该如何进行。

2025-03-28 20:40:48 114

原创 spring事务什么时候会失效

spring事务(aop做的)

2025-03-28 20:03:35 189

原创 spring事务的实现方式

禁⽌此连接的⾃动提交,这是实现Spring事务⾮常重要的⼀步。一. 编程式(通过编写代码显式控制事务的开启、提交、回滚)二. 声明式( @Transactional 开启)4. 如果加了,那么则利⽤事务管理器创建⼀个数据库连接。@Transactional注解。事务的实现(编程式,声明式)7. 执⾏完当前⽅法后,如果。5. 并且修改数据库连接的。6. 然后执⾏当前⽅法,Spring会创建⼀个。时,会先判断该⽅法上。,并且这个异常是需要。

2025-03-28 19:11:28 159

原创 什么是bean的⾃动装配,有哪些⽅式?

开启⾃动装配 --> xml配置(autowire)

2025-03-28 12:38:10 204

原创 spring中Bean是线程安全的吗

单例bean:不安全,多个线程共享一个bean对象(有状态)原型bean:安全,每次请求创建一个新对象。

2025-03-28 12:09:06 102

原创 解释一下spring支持的几种bean的作用域

2025-03-28 11:05:56 136

原创 SpringBoot中的常用注解

加粗样式

2025-03-28 10:36:38 121

原创 Spring 是如何解决循环依赖问题的?

(map1 单例池,map2 原始Bean,map3 Bean对象工厂)《A类需要B类,B类需要A类,形成循环依赖》map3(Factory.创建A的方法)3级缓存解决循环依赖(就是3个map)

2025-03-28 10:15:10 222

原创 ApplicationContext和BeanFactory有什么区别

⽽ApplicationContext继承了BeanFactory,继承了诸如 EnvironmentCapable、MessageSource、ApplicationEventPublisher等接⼝,从⽽。BeanFactory(Bean⼯⼚),可以⽣成维护Bean,

2025-03-28 09:09:45 121

原创 Spring Bean的生命周期

5.回调aware方法(BeanNameAware、BeanFactoryAware、ApplicationContextAware)4.属性填充(加了@Autowired注解)

2025-03-27 23:02:11 138

原创 @RestController与@Controller区别

controller

2025-03-27 18:35:47 121

原创 如何实现aop,项目中哪些地方用到了aop

2025-03-27 16:36:06 109

原创 对AOP的理解

System.out.println(“记录日志前。面向切面编程(不侵入代码的情况下,做功能扩展)aop底层用的是动态代理。

2025-03-27 16:25:33 364

原创 JDK动态代理和CGLib动态代理实现原理和两者的区别

3.创建实现指定接口的代理类(转发到InvocationHandler对象中的invoke方法中)(invoke方法又会跳转到被代理类的目标方法中)* 3. InvocationHandler类中method.invoke(target, args)* 2. proxy类中InvocationHandler.invoke()2.被代理类决定类型(代理对象的类型)(不需要实现接口)jdk代理(实现接口的类),cglib代理(任何类)2.必须实现接口(代理对象)

2025-03-27 15:39:57 173

原创 ioc的理解

2025-03-27 12:23:11 124

原创 跨域请求是什么?有什么问题?怎么解决?

Springboot 解决跨域(CorsConfig)任意一个与当前页面url不同)浏览器(同源策略-安全功能)

2025-03-27 10:28:47 123

原创 深入理解MVCC机制

当202已提交,201读的时候(是202事务的版本),使得不同的事务会根据数据版本链对比规则。3个事务(201,202,203)201读的时候(是自己事务的版本)MVCC机制的实现就是通过。

2025-03-26 23:18:05 330

原创 explain详解与索引最佳实践

index(覆盖索引,回表)EXPLAIN SELECT * FROM film。range( in(), between ,> ,<, >= )(范围扫描)5. possible_keys列(可能用什么索引查找)eq_ref(返1条记录的主键或唯一索引的关联查询)7. key_len列 (被选中索引的字段的长度)NULL 特例(优化阶段搞定,不访问表或索引)6. key列 (实际用什么索引查找)☆☆☆explain中的列☆☆☆。ref (普通索引)

2025-03-26 21:40:17 276

原创 mysql底层数据结构与算法

对索引的key进行1次hash计算就可以定位出数据存储的位置。mysql的索引结构(B+树、hash、红黑树)hash索引比B+树索引更高效(很多时候)插入数据的时候比当前节点小的左大的右。索引的本质(排好序的数据结构)红黑树(有平衡功能的二叉树)

2025-03-26 12:51:40 138

原创 索引失效的10种场景

explain select * from user where code = ‘101’ and name=‘张三’;上面四种情况,sql都能正常走索引。最左匹配原则(都有code)建立一个联合索引(idx_code_age_name)not in和not exists(in可以走索引)使用了select *like左边包含了%order by的坑。

2025-03-25 22:41:38 230

原创 sql优化的14个技巧

explain select * from where exists (select 1 from where .user_id = .id and .status=1)

2025-03-24 15:36:06 147

原创 大表数据查询,怎么优化?

大表数据查询优化

2025-03-24 10:30:19 207

原创 主键使用自增ID还是UUID

InnoDB存储引擎中:主键索引是作为聚簇索引存在的,如果是自增ID原本就有序,如果是UUID需要变换位置重新排序,可能生成内存碎片。插入性能是原本有序的自增ID好。InnoDB的聚簇索引(主键-唯一索引-隐式id)

2025-03-24 09:29:34 269

原创 为什么要尽量设定一个主键?

主键

2025-03-24 00:12:50 112

原创 关心过业务系统里面的sql耗时吗?统计过慢查询吗?对慢查询都怎么优化过?

搞明白慢的原因:查询条件没有命中索引,load了不需要的数据页,数据量太大。1.看执行计划explain(命中索引没,改语句改索引)3.考虑分表(表太大了)2.是不是load多了。

2025-03-23 23:56:14 89

原创 如何开启慢查询日志

开启慢查询日志,它会在datadir下产生一个xxx-slow.log的文件。

2025-03-23 23:50:21 111

原创 超大分页怎么处理

select * from table where id in (select id from table where age> 20 limit 1000000,10)走了age的索引覆盖,优化提升效率。select * from table where id > 1000000 limit 10(id连续可以用,效率很高)这条语句要扫描100万条数据,取10条。

2025-03-23 23:47:39 88

原创 sql的生命周期

sql生命周期

2025-03-23 23:23:28 94

原创 char与varchar的区别

char和varchar区别

2025-03-23 23:06:21 217

原创 数据库中的乐观锁和悲观锁是什么?怎么实现的?

乐观锁和悲观锁?

2025-03-23 16:23:50 153

原创 mysql中innodb的行锁是怎么实现的?

行锁怎么实现?

2025-03-23 14:54:59 251

原创 从锁的类别上分mysql都有哪些锁?行锁定是不是阻碍了并发效率

行锁不是阻碍并发效率,而是增加cpu,内存等开销,因为要频繁加锁释放锁。相反,行锁会增加并发效率(因为锁粒度小,线程并发就多,不像表锁锁整张表)3个事务有一个拿了写锁另外2个不能拿读写锁。类别上(共享锁,排它锁)就是(读锁,写锁)举例:3个事务都可以拿读锁。

2025-03-23 13:45:17 72

原创 按照锁的粒度分数据库锁有哪些?

(上锁《这个表数据就给这个事务用》)(上锁《这行数据就给这个事务用》)表锁: 粒度大,并发度低,开销小。行锁: 粒度小,并发度高,开销大。

2025-03-23 12:21:58 100

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除