一、什么是mybatis
Mybatis是一个不完整的ORM【对象关系映射:ObjectRelation Mapping,用于实现面向对象编程语言里不同类型系统的数据之间的转换。把表映射成实体类,把表中字段映射实体类属性(POJO)】框架,是一个持久化框架
mybatis框架只实现了关系到对象的映射
持久化:将数据信息永久的保存到数据库、文件系统
持久层:将数据实现持久化操作的框架,就是取代JDBC
常见的ORM开源框架:mybatis、Hibernate(完整的ORM框架)
Mybatis和Hibernate不同,更关注原生sql编写来实现数据库CRUD操作
Mybatis采用功能强大的基于OGNL的表达式来消除其他元素。#{…}
Mybatis的优势:
1.mybatis是支持普通sql查询,存储过程和高级映射
2.消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。
3.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain OldJava Objects,普通的Java对象)映射成数据库中的记录。
4. 提供对象关系映射标签,支持对象关系组建维护
5.Mybatis良好的sql缓存
6.提供xml标签,支持编写动态sql,解除sql与程序代码的耦合。
Mybatis的缺点:
1. sql依赖于数据库,导致数据库移植性差。
2. 由于xml里标签id必须唯一,导致DAO中方法不支持方法重载。
3. 不支持级联更新、级联删除。
4. DAO层过于简单,对象组装的工作量较大。
5. 参数的数据类型支持不完善。(如参数为Date类型时,容易报没有get、set方法,需在参数上加@param)
6. 若不查询主键字段,容易造成查询出的对象有“覆盖”现象。
Mybatis的功能体系
框架图:
扩展:
mybatis从iBatis发展而来的,从apache项目下,googlecode,github
- Apache
服务器,跨平台,安全性
ASF:开源项目基金会
开源项目:tomcat,ibatis,hadoop,lucence
- Googlecode
- github
开源项目的托管
mybatis核心类和接口(session包)
- SqlSessionFactoryBuilder
- SqlSessionFactory
- SqlSession:简历数据库连接的
- Mapper实例:真正去使用sql操作数据库的
mybatis核心配置文件
- SqlConf.xml 配置数据库连接等相关的大的配置
- Mapper.xml 配置映射
请关注“知了堂学习社区”,地址:http://www.zhiliaotang.com/portal.php