【Java面试】Mybatis篇
来源:互联网 发布:徐克版笑傲江湖 知乎 编辑:程序博客网 时间:2024/06/07 08:23
1.MyBatis编程步骤是什么样的?
① 创建SqlSessionFactory
② 通过SqlSessionFactory创建SqlSession
③ 通过sqlsession执行数据库操作
④ 调用session.commit()提交事务
⑤ 调用session.close()关闭会话
② 通过SqlSessionFactory创建SqlSession
③ 通过sqlsession执行数据库操作
④ 调用session.commit()提交事务
⑤ 调用session.close()关闭会话
2.Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
<resultMap>、<parameterMap>、<sql>、<include>、<selectKey>,加上动态sql的9个标签,trim|where|set|foreach|if|choose|when|otherwise|bind等
3.#{}和${}的区别是什么?
#{}是预编译处理,${}是字符串替换。Mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法来赋值;Mybatis在处理${}时,就是把${}替换成变量的值。使用#{}可以有效的防止SQL注入,提高系统安全性。
4.Mybatis是如何进行分页的?分页插件的原理是什么?
Mybatis使用RowBounds对象进行分页,它是针对ResultSet结果集执行的内存分页,而非物理分页,可以在sql内直接书写带有物理分页的参数来完成物理分页功能,也可以使用分页插件来完成物理分页。
分页插件的基本原理是使用Mybatis提供的插件接口,实现自定义插件,在插件的拦截方法内拦截待执行的sql,然后重写sql,根据dialect方言,添加对应的物理分页语句和物理分页参数。
5.Mybatis缓存机制
MyBatis有两级缓存
一级缓存是SqlSession级别的缓存,他的作用域是同一个SqlSession,在同一个sqlSession中执行相同的Sql语句,第一次执行完毕的会将结果集写到缓存中,第二次就会从缓存中获取数据;
二级缓存是mapper级别的缓存,作用域是mapper的同一个namespace,不同的sqlsession在同一个namespace下执行相同的sql语句,第一次查询的结果缓存到缓存中,第二次则可从缓存中获取数据。
Mybatis默认开启一级缓存,没有开启二级缓存,二级缓存需要在xml配置中手动配置开启。
6.Mybatis与Hibernate比较
1.MyBatis可以进行更为细致的SQL优化,可以减少查询字段。
2.MyBatis容易掌握,而Hibernate门槛较高。
3.Hibernate功能强大,数据库无关性好,O/R映射能力强,需要代码量少,开发速度快
阅读全文
0 0
- 【Java面试】Mybatis篇
- java面试总结-3 mybatis
- java面试——mybatis 面试题
- Mybatis面试
- JAVA面试中问及HIBERNATE与 MYBATIS的对比
- JAVA面试中问及HIBERNATE与 MYBATIS的对比
- JAVA面试中问及HIBERNATE与 MYBATIS的对比
- JAVA面试中问及HIBERNATE与 MYBATIS的对比总结
- JAVA面试中问及HIBERNATE与 MYBATIS的对比
- JAVA面试中问及HIBERNATE与 MYBATIS的对比总结
- JAVA面试中问及HIBERNATE与 MYBATIS的对比
- (转)JAVA面试中问及HIBERNATE与 MYBATIS的对比
- [Java面试七]Mybatis总结以及在面试中的一些问题.
- [Java面试七]Mybatis总结以及在面试中的一些问题.
- [Java面试七]Mybatis总结以及在面试中的一些问题.
- [Java面试七]Mybatis总结以及在面试中的一些问题
- Mybatis面试问题集锦
- Mybatis 面试基础题
- linux环境变量设置空格问题
- 使用eclipse连接hadoop失败情况
- Vulkan中Loader和Layer的接口(LoaderAndLayerInterface)
- 第一个只出现一次的字符
- 使用GDB调试多进程/多线程程序
- 【Java面试】Mybatis篇
- 【Python】四、Sympy——《用Python做科学计算》
- tesseract OCR 调用的方法例程,from wiki
- JS基本类型与引用类型的值与作用域
- RecyclerView精确恢复到上次的位置
- RecyclerView使用方法
- Javaweb 实战之Spring
- 【转载】Android布局讲解之FrameLayout布局
- Codeforces 814D An overnight dance in discotheque DP(树形)