• lizishushu
    2018-07-31
    mybatis架构自下而上分为基础支撑层、数据处理层、API接口层这三层。

    基础支撑层,主要是用来做连接管理、事务管理、配置加载、缓存管理等最基础组件,为上层提供最基础的支撑。
    数据处理层,主要是用来做参数映射、sql解析、sql执行、结果映射等处理,可以理解为请求到达,完成一次数据库操作的流程。
    API接口层,主要对外提供API,提供诸如数据的增删改查、获取配置等接口。

    作者回复: 这是比较正式的观点

    
     56
  • 一首歌一种心情一段路
    2018-11-24
    悲观锁和乐观锁在哪儿用的.......平时写sql没接触过啊

    作者回复: 出去面试千万别这么说

     1
     25
  • 任鹏斌
    2018-08-12
    对于mysql四个隔离级别中的不可重复读的最后一句不是很理解。不可重复读应该是不能避免幻读,为什么说是不产生幻读呢?
     2
     8
  • L.B.Q.Y
    2018-07-31
    mysql(innodb)的可重复读隔离级别下,为什么可以认为不会出现幻像读呢?

    作者回复: 从技术角度实现,mysq用mvcc做了snapshot,如果是locking read文档明确指出了会做区间锁定

     1
     7
  • clz1341521
    2018-08-11
    mysql inndb默认可重复读级别,不会出现幻读。
    mybatis架构自下而上分为基础支撑层、数据处理层、API接口层这三层。

    基础支撑层,主要是用来做连接管理、事务管理、配置加载、缓存管理等最基础组件,为上层提供最基础的支撑。
    数据处理层,主要是用来做参数映射、sql解析、sql执行、结果映射等处理,可以理解为请求到达,完成一次数据库操作的流程。
    API接口层,主要对外提供API,提供诸如数据的增删改查、获取配置等接口。
    展开

    作者回复: 不错

    
     6
  • 文彦
    2018-11-08
    晓峰老师。最近感觉基础有点差,开始看jdk的源码,主要是结合api来看。但是感觉事倍功半,有什么好的建议吗?

    作者回复: 还是明确目的+实践,不一定非要都看jdk源码,初期明白并掌握通用原则更高效,比如 冠宝的 《阿里Java手册》或者经典书籍,并且达到水平还是要有代码量

    
     4
  • 郝国梁
    2018-07-31
    乐观锁 悲观锁 脏读 幻读 不可重复读 CAS MVCC 隔离级别 锁队列 2PC TCC
    
     4
  • 饭粒
    2019-02-12
    SQL标准的隔离级别可重复读还是有幻读问题的。 InnoDB 和 XtraDB存储引擎 通过多版本并发控制( MVCC, Multiversion Concurrency Control) 解决了幻读的问题。

    作者回复: 嗯呢

     1
     3
  • old_snail
    2018-08-22
    杨老师 您好,关于“可以简单认为MySQL在可重复读级别不会出现幻象读”没能理解,个人认为正是因为可重复读,即每个事务保存了快照,才导致了幻读的现象。想要解决幻读,只能加共享锁或者排它锁吧。 可能是因为知识浅导致无法理解,还望方便的话,您能点拨一下,感谢
    
     3
  • 三木子
    2018-07-31
    说到mybatis,就想起了分页,现在绝大多分页都用到了pagehelper插件,我想问下老师为啥mybatis没有设计一个好用的分页了?

    作者回复: 这最好问MyBatis作者,抱歉

     1
     3
  • anji
    2018-07-31
    0.sql工厂-主要设定数据库连接信息
    1.接口层-主要有mapper接口用于对外提供具体的sql执行方法
    2.xml文件-有具体的sql实现语句,以及数据库字段对应java类字段的映射关系,每个mapper对应每个数据库表
    
     3
  • Allen
    2018-08-01
    请问什么时候可以细说一哈ORM映射😋
    
     2
  • Dream
    2018-08-23
    MVCC到底有没有加锁?如何应用的?
    
     1
  • rike
    2020-02-02
    这个数据库的隔离级别个人认为是停留在理论的层次上,我在学习专栏《SQL必知必会》中,做过实验,按照例子中执行的实际结果跟隔离级别的定义不一样,不清楚这是在什么场景下才会出现这些问题。
    
    
  • 尚有智
    2020-01-20
    亲测后,发现一个问题,没搞懂,希望老师指点一下(自动提交修改成了手动提交):
    start transaction;
    select * from user where status = 0 and id = 1;
    update user set status = 1 where id =1;
    select * from user where status = 0 and id =1;
    并未commit,第一个select能查询到数据,第二个select 不能查询到数据,我的理解是事务没有提交的时候,第二个select也能查询到数据,不清楚这个是怎么回事,isolation level 设置为read committed 和 repeatable read 都有这个问题,望解答!
    展开
    
    
  • 小笨蛋
    2019-01-02
    sql方面我们从来没有使用过悲观锁,一直都是用的乐观锁,怎么办?
    
    
  • 种出个地球
    2018-10-22
    老师是不是写错了,在可重复读隔离级别中,基于锁的并发控制 DBMS实现保持读取和写入锁定(在选定数据上获取),直到事务结束。但是,range-locks没有被管理 ,因此可能会发生幻像读取。

    事物的隔离级别增强分别解决由脏读、不可重复读再到幻读,只有串行化能解决三者,但是损失了效率。

    作者回复: 大家理解的范围可能有些区别,你可以设计一个简单的测试用例并试验一下吗?

    
    
  • kitten
    2018-08-01
    mysql,可重复读的隔离级别,也在有gap间隙锁吧?

    作者回复: 是 有,另一个回复里提到了

    
    
  • 又双叒叕是一年啊
    2018-08-01
    不同的事务隔离级别分别怎么实现事务机制一样吗
    
    
我们在线,来聊聊吧