MyBatis面试题及答案(1-5)

1、什么是MyBatis?

MyBatis是一个Java持久层框架,它通过XML或注解的方式将SQL语句与Java对象进行映射,简化了数据库访问的操作。

2、MyBatis的核心组件是哪些?

MyBatis的核心组件包括SqlSessionFactory、SqlSession和Mapper接口。SqlSessionFactory是MyBatis的核心,它负责创建SqlSession对象;SqlSession是MyBatis的核心接口,它封装了对数据库的操作;Mapper接口是用于定义SQL语句和Java对象映射关系的接口。

3、MyBatis的优点是什么?

MyBatis的优点包括:灵活、简单易用、易于集成、能够与其他框架(如Spring)无缝集成、支持动态SQL、可以进行缓存管理、可以自定义映射关系等。

4、MyBatis的缺点是什么?

MyBatis的缺点包括:需要手写SQL语句,不够方便;对于复杂的关系型数据操作,需要进行多表关联,写SQL语句比较复杂。

5、MyBatis中的#{ }和${ }有什么区别?

#{ }和${ }的区别在于,#{ }会将输入参数都转义后再传入SQL语句中,可以有效避免SQL注入攻击,而${ }则是直接将输入参数拼接到SQL语句中,容易受到SQL注入攻击。同时,#{ }支持预编译,能够提高SQL语句的执行效率。