MyBatis面试题及答案(6-10)

6、MyBatis中的resultMap是什么?有什么作用?

MyBatis中的resultMap是一种映射规则,用于将查询结果集中的列与Java对象的属性进行映射。resultMap可以用于实现复杂的结果集映射,包括嵌套结果映射和结果关联等。

7、MyBatis中的动态SQL是什么?有哪些实现方式?

MyBatis中的动态SQL是一种根据不同条件动态生成SQL语句的技术,用于实现灵活的SQL语句构建。MyBatis中的动态SQL实现方式包括:

使用if、choose、when、otherwise标签实现条件判断
使用foreach标签实现循环处理
使用set标签实现动态更新
使用where标签实现动态查询条件拼接

8、MyBatis中的Mapper接口是什么?有什么作用?

MyBatis中的Mapper接口是一种将SQL映射配置文件中的SQL语句映射到Java接口中的技术。Mapper接口的作用是提供一种更加优雅、类型安全的方式来访问数据库。通过Mapper接口,可以在Java中声明SQL语句并调用SQL语句,而不必直接编写SQL语句。

9、MyBatis中的事务管理是怎样实现的?

MyBatis中的事务管理是通过SqlSession来实现的。SqlSession可以管理一个JDBC连接,并且可以通过commit或rollback方法来提交或回滚事务。在MyBatis中,事务的管理可以使用编程式事务和声明式事务两种方式实现。

10、MyBatis中的一级缓存和二级缓存有什么区别?

MyBatis中的一级缓存是SqlSession级别的缓存,它是默认开启的,并且不能关闭。一级缓存中的数据是在同一个SqlSession中共享的。一级缓存的数据会在SqlSession执行更新操作(insert、update、delete)时被清空。

MyBatis中的二级缓存是Mapper级别的缓存,它是可以配置开启或关闭的。二级缓存中的数据是在不同的SqlSession之间共享的。二级缓存需要通过配置实现,配置中需要指定缓存的实现方式和缓存的作用域等。