MyBatis教程大全


 MyBatis SQL 映射

     MyBatis select 标签

     MyBatis 多数据库支持

     MyBatis selectKey 标签作用

     MyBatis @SelectKey注解用法介绍

     MyBatis @SelectKey注解用法详细介绍

     MyBatis keyProperty 属性介绍

     MyBatis insert、update 和 delete 元素

     MyBatis sql 元素

 MyBatis SQL 参数映射

     MyBatis SQL 参数映射

 MyBatis 动态SQL

     MyBatis 动态SQL与数据准备

     MyBatis if 标签

     MyBatis if else 用法

     MyBatis choose、when、otherwise 标签

     MyBatis where 标签

     MyBatis set 标签

     MyBatis foreach 标签

     MyBatis bind 标签

     MyBatis trim 标签

 MyBatis SQL 结果映射

 MyBatis SQL 结果之关系映射

 MyBatis 使用介绍

     MyBatis typeAliases 类型别名

     MyBatis typeHandlers 类型处理器

     MyBatis Transaction 事务接口

     MyBatis transactionManager 事务管理

     SqlSessionFactory 介绍

     MyBatis 核心对象 SqlSession

     MyBatis 初始化 创建 Session 实例

     MyBatis ObjectFactory 对象工厂

     MyBatis缓存机制:一级缓存和二级缓存

     MyBatis 常用注解

 MyBatis 配置文件

     MyBatis 配置文件

 MyBatis 映射

     MyBatis 映射简介

     MyBatis ResultMap 映射

     MyBatis 自动映射

     MyBatis 高级映射

     MyBatis 集合映射

     MyBatis 关联映射

     MyBatis 一对一关联映射

     MyBatis 一对多关联映射

     MyBatis 多对多关联映射

     MyBatis 一对一(注解形式)

     MyBatis 一对多(注解形式)

     MyBatis 多对多(注解形式)

     MyBatis resultMap 元素

 MyBatis 面试题库

     #{}和${}的区别是什么?

     数据库链接中断如何处理?

     数据库插入重复如何处理?

     事务执行过程中宕机的应对处理方式

     Java客户端中的一个Connection问题

MyBatis常见面试题2:数据库链接中断如何处理?

题目:我们知道,数据库的访问底层是通过tcp实现的,如果数据库链接中断,那么应用程序是不知道的,是探测不出的,那么程序会卡住,一直在等待,会等待吓人的几十分钟,这种情况会把人郁闷死,真不如及时来个弹框,告诉用户系统暂时无法使用,让用户离开呢。所以,面对数据库连接中断的异常,该怎么设置mybatis呢?

答案:要想吃透这个问题,要明白链接中断产生的原因。这里面会涉及到网络通信的问题。在数据库链接中,connection操作可不是计算1+1这样的形式,它低层是个循环处理过程,既然是循环处理过程那么自然就跟时间扯上关系了,跟时间有关的设置有:max_idle_time,connect_timeout。max_idle_time表明最大的空闲时间,超过这个时间socket就会关闭,这样操作系统会省心省力一些,毕竟操作系统维持一个socket也是花费不少精力的。connect_timeout表明链接的超时时间,我们知道,网络环境就是跟潮水一样,一波一波的,总是在波动,既是数据库服务器活的杠杠的,但是因为网络用塞,客户端仍然连不上服务器端,这个时候就要设置timeout,别一直傻等着。