1.1的编程步骤有哪些。我的巴蒂斯?
创建SqlSessionFactory
通过SqlSession工厂创建SQL session
通过sqlsession执行数据库操作
调用session.commit()提交事务。
调用session.close()关闭会话。
2.在2。Xml映射文件,除了常见的select|insert|updae|delete标签,还有哪些标签?
、加上动态sql的九个标记,trim | where | set | foreach | if | choose | when | other | bind等。
3.# {}和$ {}有什么区别?
# {}是预编译处理,$ {}是字符串替换。
当Mybatis处理# {}时,会用数字替换sql中的# {},并调用PreparedStatement的set方法赋值;
当Mybatis处理$ {}时,它只是用变量值替换$ {}。
使用# {}可以有效防范SQL注入,提高系统安全性。
4.4。Mybatis执行分页?分页插件的原理是什么?
Mybatis使用RowBounds对象进行分页,这是对结果集结果集的内存分页,而不是物理分页。带有物理分页的参数可以直接用sql编写完成物理分页功能,也可以使用分页插件完成物理分页。
分页插件的基本原理是利用Mybatis提供的插件接口实现自定义插件,在插件的拦截方法中拦截要执行的sql,然后重写sql,并根据Dial的方言添加相应的物理分页语句和物理分页参数。
5.Mybatis缓存机制
MyBatis有两级缓存。
第一级缓存是SqlSession级缓存,其作用域是相同的SqlSession,相同的Sql语句在相同的sqlSession中执行。第一次执行后,结果集将被写入缓存,第二次从缓存中获取数据。
二级缓存是映射器级缓存,其范围与映射器的命名空间相同。不同的sqlsession在相同的命名空间中执行相同的sql语句。第一次查询的结果缓存在缓存中,第二次可以从缓存中获取数据。
默认情况下,Mybatis会打开一级缓存,但不会打开二级缓存。二级缓存需要手动配置,并在xml配置中打开。
6.6之间的比较。Mybatis和Hibernate
1.MyBatis可以执行更详细的SQL优化并减少查询字段。
2.MyBatis容易掌握,而Hibernate门槛更高。
3.Hibernate功能强大,数据库独立性好,O/R映射能力强,代码需求少,开发速度快。