MyBatis中的动态SQL可以使用isNull和isNotNull来处理NULL值。可以通过在判断语句中使用这两个判断条件来决定是否包含NULL值。 MyBatis的批量处理是如何实现的? MyBatis的批量处理可以通过批量执行器来实现,将多次操作的SQL语句打包成一次批量执行,减少与数据库的交互次数,提高性能。 MyBatis的日志是如何配置的?有哪些日...
(1)MyBatis 和 Hibernate 不同,它不是一个完全的 ORM 框架,因为 MyBatis 需要程序员自己编写 SQL 语句; (2)MyBatis 直接编写原生态 SQL,可以严格控制 SQL 执行性能,灵活度高,非常适合对关系数据模型要求不高的软件开发,因为这类软件需求变化频繁,一旦有需求变化可以迅速输出成果。但是灵活的前提是 MyBatis 无法...
3.MyBatis 如何获取自动生成的(主)键值 在MyBatis 中获取自动生成的主键值可以通过以下方式进行操作: 在插入操作中使用useGeneratedKeys属性和keyProperty属性。示例如下: 复制代码 @Insert("INSERT INTO my_table(column1, column2) VALUES(#{column1}, #{column2})") @Options(useGeneratedKeys=true, keyProperty =...
Mybatis 运行时会使用 JDK 动态代理为 Mapper 接口生成代理对象 proxy,代理对象会拦截接口方法. 转而 执行 MapperStatement 所代表的 sql,然后将 sql 执行结果返回. 10、Mybatis 是如何进行分页的?分页插件的原理是什么? Mybatis 使用 RowBounds 对象进行分页,它是针对 ResultSet 结果集执行的内 存分页,而非物理...
MyBatis中的缓存设计-MyBatis中缓存的理解 16:31 面试通不过/投简历没人理,怎么办? 05:19 MyBatis中的缓存自定义-MyBatis中如何实现缓存的扩展 12:12 MyBatis中涉及到的设计模式-MyBatis中对设计模式的理解 09:29 谈谈你对SqlSessionFactory的理解 05:37 谈谈你对SqlSession的理解 04:47 什么是MyBat...
MyBatis 面试题 1、什么是 Mybatis? 1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原生态 sql,可以严格控制 sql 执行性能,...
面试问题一.请介绍mybatis及其优缺点 (1)介绍mybatis mybatis的前身是apche公司的ibatis,于2010年更名为MyBatis,目前项目源码托管于github;(历史渊源); 它是一款持久层框架,程序员通过编写sql后交给mybatis框架进行处理,省去大量的JDBC冗余代码。 除此之外,mybatis支持缓存,延迟加载,日志和动态sql等功能,是目前java...
java【MyBatis】面试题 一、MyBatis编程步骤。 1.创建SqlSessionFactory对象。 2.通过SqlSessionFactory获取SqlSession对象。 3.通过SqlSession获得Mapper代理对象。 4.通过Mapper代理对象,执行数据库操作。 5.执行成功,则使用SqlSession提交事务。 6.执行失败,则使用SqlSession回滚事务。
2. MyBatis 有几种分页方式? 分页方式:逻辑分页和物理分页。 逻辑分页: 使用 MyBatis 自带的 RowBounds 进行分页,它是一次性查询很多数据,然后在数据中再进行检索。 物理分页: 自己手写 SQL 分页或使用分页插件 PageHelper,去数据库查询指定条数的分页数据的形式。
1)Mybatis 使用 RowBounds 对象进行分页,也可以直接编写 sql 实现分页,也可以使用Mybatis 的分页插件。 2)分页插件的原理:实现 Mybatis 提供的接口,实现自定义插件,在插件的拦截方法内拦截待执行的 sql,然后重写 sql。 举例:select * from student,拦截 sql 后重写为:select t.* from (select * from student...