一,区别
1.Mybatis轻量级封装jdbc。 hibernate是重量级封装jdbc
2.mybatis开发效率慢,运行效率快。 hibernate开发效率快,运行效率慢
3.mybatis使用的事sql。 hibernate使用的是hql
4.mybatis需要程序员对sql熟练掌握。 hibernate使用起来方便,对程序要得sql没要过多的要求
5.mybatis更加灵活。 hibernate如果碰见复杂的查询,不是很灵活
二,mybatis里的标签有哪些?
我们可以根据每个方面来说。比如在定义sql语句里面标签有:select, insert ,delete,update
配置java对象属性与查询结果集中列名对应关系:resultMap
控制动态sql拼接:if,foreach,choose
格式化输出:where,set,rim
配置关联关系:colletction,associaion
定义常量及引用:sql,include
三,咱们简单的说一下Mybatis的一级缓存和二级缓存
mybatis首先去缓存中查询结果集,如果没有则查询数据库,如果有则从缓存取出返回结果集就不走数据库。mybatis内部存储使用一个HashMap,key为hashCode+sqlId+Sql语句。value为从查询出来映射生成的java对 Mybatis的二级缓存即查询缓存,他的作用域是一个mapper的namespace,即在同一个namespace中查询sql可以从缓存中获取数据。二级缓存是可以跨SqlSession的