欢迎光临
我们一直在努力

每日学习-05

题目一:mysql多个人同时修改数据库会发生什么

题目二:bean对象注入方式有哪些

题目三:联合索引中的最左匹配原则是什么意思

题目四:mybatis中数据库表如何映射

题目五:对前端有什么了解的技术栈

题目一:mysql多个人同时修改数据库会发生什么

多人同时修改 MySQL 同一行数据会出现两类问题,分场景说:

1. 不加锁并发更新:数据覆盖、超卖

两个事务先查询到同一个库存数值,各自扣减后更新。后提交的事务会直接覆盖前一个的修改,导致库存少扣、商品超卖,出现数据不一致。

2. InnoDB 行锁机制(默认隔离级别 RR)

  • 普通更新语句会自动加排他行锁,先执行更新的事务锁住该行;
  • 后面的修改请求会阻塞等待,直到前事务提交 / 回滚释放锁,不会出现脏写。

3. 并发带来的读问题(事务隔离层面)

  • 脏读:读到其他事务未提交的修改;
  • 不可重复读:同一事务两次查询,中间被别的事务修改提交,两次结果不一样;
  • 幻读:同一范围查询,中途其他事务插入 / 删除,前后行数不一致。

4. 极端死锁

多个事务互相持有对方需要的行锁,互相等待释放,MySQL 会主动回滚代价小的事务解除死锁。

解决方案

  • 悲观锁:select … for update 提前锁住数据;
  • 乐观锁:version 版本号 / update stock set stock=stock-1 where stock>0;
  • 合理控制事务粒度,缩短锁持有时间,减少并发冲突。

题目二:bean对象注入方式有哪些

三种核心注入:字段注入、setter 注入、构造器注入;区分 @Autowired 按类型、@Resource 按名称,项目主流字段注入,官方推荐构造器注入。

题目三:联合索引中的最左匹配原则是什么意思

一、核心一句话

联合索引优先匹配最左边字段,左边缺了,后面索引失效;遇到范围查询,后面字段索引作废。

二、举例(索引 (a,b,c))

  • 有最左 a → 能走索引;没 a 只查 b/c → 完全不走索引
  • SQL 条件顺序随便写,mysql 会自动调整,不影响索引
  • a 等值、b 范围、c 等值:仅 a、b 走索引,c 失效
  • 三、开发口诀

    等值字段放索引前面,范围查询放索引最后。

    题目四:mybatis中数据库表如何映射

    一、核心映射对应关系

    数据库表 ↔ Java 实体类(Entity) 表字段 ↔ 实体类属性 表主键 ↔ 实体主键属性

    二、三种映射方式

  • 自动驼峰映射(最常用) 表字段 user_name,实体属性 userName,MyBatis 自动匹配,不用额外配置。
  • @Table、@Column 注解映射(MyBatis-Plus)@Table(name = "t_user") 指定对应哪张表;@Column(value = "u_name") 手动绑定字段和属性。
  • XML 文件映射(原生 MyBatis) 在 resultMap 标签里写:<id column="id" property="id"/><result column="user_name" property="userName"/> column 是数据库字段,property 是实体属性。
  • 三、一句话总结

    表对应实体类,字段对应类属性;驼峰自动匹配,名称不一致就用注解或 XML 手动绑定。

    题目五:对前端有什么了解的技术栈

  • 基础核心:HTML、CSS、JavaScript,页面结构、样式、交互逻辑基础。
  • 主流框架:Vue2/Vue3(项目主要接触),掌握组件、v 指令、Axios 请求、Vuex/Pinia 状态管理;了解 React 基础。
  • 工程化工具:Vue-CLI、Vite 打包,npm/yarn 包管理,ES6 语法。
  • 前后端交互:Axios 发送请求,跨域处理,JSON 数据传递,表单校验、分页、弹窗等业务组件。
  • 辅助工具:Element Plus、Ant Design 等 UI 组件库,能看懂前端接口调用逻辑,方便和前端联调接口。
  • 精简一句话背诵

    基础三件套 HTML/CSS/JS,主流 Vue3 框架,会用 Axios 联调接口,熟悉 UI 组件库与前端工程化工具。

    赞(0)
    未经允许不得转载:171主机测评 » 每日学习-05
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址