一. mybatis简介
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)
很多人都在谈论,一些人认为mybatis不是一个ORM框架,但是在实际中,mybatis的核心是输入映射,输出映射.所以,是一个ORM,确切的说是一个半orm框架.
二. 原生sql编程存在的一些问题
1、数据库连接,使用时就创建,不使用立即释放,对数据库进行频繁连接开启和关闭,造成数据库资源浪费,影响 数据库性能。
设想:使用数据库连接池管理数据库连接。
2、将sql语句硬编码到java代码中,如果sql 语句修改,需要重新编译java代码,不利于系统维护。
设想:将sql语句配置在xml配置文件中,即使sql变化,不需要对java代码进行重新编译。
3、向preparedStatement中设置参数,对占位符号位置和设置参数值,硬编码在java代码中,不利于系统维护。
设想:将sql语句及占位符号和参数全部配置在xml中。
4、从resutSet中遍历结果集数据时,存在硬编码,将获取表的字段进行硬编码,,不利于系统维护。
设想:将查询的结果集,自动映射成java对象。
针对以上几个问题,mybatis给予了最好的解释.程序员自己来编写sql,编写接口操作数据库.
三. mybatis的三个重要对象
1 SqlSessionFactoryBuilder
作用:加载mybatis的全局配置文件--获取会话工厂
使用范围:作为局部变量使用。相当于工具类
2 SqlSessionFactory
作用:生成会话
使用范围:只存在一份该对象的实例----可以通过单例来维护该对象
3 SqlSession
作用:操作API
使用范围:作为局部变量是使用