介绍
Mybatis前身是apache的一个优秀ORM开源框架(ibatis),2010迁移到GoogleCode改名为Mybatis;2013年迁移到GitHub。
干什么的
持久层框架,底层封装的是JDBC,负责连接数据库,和数据操作(增删改查)
ORM
Object-Relationship-Mapping,对象关系映射,简单来说就是将数据库中的每个表映射到每一个对象中
Mybatis映射对象全部为POJO,那么什么是POJO?即传统老式的java对象,没有实现过任何接口或者继承过任何其他类,更没有被其他框架侵入。
Pojo和JavaBean的比较
pojo的格式是用于数据的临时传递,它只能装载数据,作为数据存储的载体,不具备业务处理能力,而javaBean虽然数据的获取和pojo一样,但是javaBean当中还可以有其他方法
JavaBean是一种JAVA语言携程的可重用组件。它的方法命名,构造行为必须符合特定的约定。
这个类必学有一个公共的缺省的构造函数
这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范
这个类是可序列化的
二.Mybatis历史,特点
Ibatis=”internet”+”abatis”组合
是一个基于java的持久层框架
Java中有两种状态:顺态和持久态
顺态:创建对象,垃圾回收,对象当中的属性和状态没有保持住,叫顺态
持久态:状态和属性保存住了,保存点有文件和数据库
特点:
开源的优秀持久层框架
SQL语句和代码完全分离
面向配置的编程
良好支持复杂数据对象的映射
动态sql
三.Mybatis工作流程
1.读取配置文件
2.生成SqlSessionFactory(建立与数据库的会话)
3.调用Mybatis提供的API
4.查询MAP配置
5.返回结果
四
Mybatis其实就是个数据库连接工具,那么相对于JDBC而言,它有什么好处呢,解决了什么问题
Jdbc连接数据库的问题:
1.数据库连接,使用时创建,不使用就立即释放,对数据可进行频繁连接和关闭,造成数据库资源浪费,影响数据库性能
解决方案:使用数据连接池管理数据库连接
2.将sql语句硬编码到sql代码中,如果sql语句修改,需要重新编译java代码,不利于系统维护
解决方案:将sql语句配置在xml配置文件中,即sql变化,不需要对java代码重新编译
3.向prparedStatement中设置参数,对占位符为止和设置参数值,硬编码在java代码中,不利于系统维护
设想:将sql语句即占位符合参数全部配置在xml中
4.在resultSet中遍历结果姐数据是,存在硬编码,将获取的表的字段进行硬编码,不利于系统维护,设想,将查询的结果集自动映射成java对象
如何解决JDBC存在的这些问题?下一篇Mybatis的入门程序再分析。