mybatis 使用mysql索引_mybatis使用及SQL语句优化小结

【摘要】 MyBatis 作为一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。

一、mybatis总结

1.mybatis查询/更新语句,没有找到符合条件的记录,会返回什么?

返回类型为String的, 实际返回null;

返回类型为对象的:实际返回null ;

返回类型为列表等集合: 实际返回空集合[];

返回类型为Boolean:实际返回false

当数据库语句插入条件不满足,会返回false;比如使用dual的SQL语句;

2.mybatis会抛出哪些常见异常?

不是所有的异常,都认为程序出异常要报错,

(1) 插入语句

DataIntegrityViolationException: 违反非空约束、数据大小超过约束

DuplicateKeyException:违反唯一键约束

CannotAcquireLockException: for update nowait 超时

(2)更新语句

条件不满足时,会返回false

数据库操作应该判断返回值,比如下面BUG:

(3) bug类,表字段找不到等场景

MyBatisSystemException

BadSqlGrammarException

3.事务里面套用for update,看上去绕过了事务

等for update获取锁后&#

【摘要】 MyBatis 作为一款优秀的持久层框架,它支持自定义SQL、存储过程以及高级映射。 一、mybatis总结 1.mybatis查询/更新语句,没有找到符合条件的记录,会返回什么? 返回类型为String的, 实际返回null; 返回类型为对象的:实际返回null ; 返回类型为列表等集合: 实际返回空集合[]; 返回类型为Boolean:实际返回false 当数据库语句插入条件不满足,会返回false;比如使用dual的SQL语句; 2.mybatis会抛出哪些常见异常? 不是所有的异常,都认为程序出异常要报错, (1) 插入语句 DataIntegrityViolationException: 违反非空约束、数据大小超过约束 DuplicateKeyException:违反唯一键约束 CannotAcquireLockException: for update nowait 超时 (2)更新语句 条件不满足时,会返回false 数据库操作应该判断返回值,比如下面BUG: (3) bug类,表字段找不到等场景 MyBatisSystemException BadSqlGrammarException 3.事务里面套用for update,看上去绕过了事务 等for update获取锁后&
经验分享 程序员 微信小程序 职场和发展