一、mybtis简介
1、Mybatis原为Apache公司门下,原来叫ibatis(之前有1.0、2.0) ;后转为Google公司的Github下才改为Mybatis(3.0)
2、传统的.JDBC与数据库访问的方式:
特点:功能简单、sql语句写在java代码里;
缺点:硬编码高耦合
3、整体解决框架
(1):Hibernate:全自动化映射(旨在消除sql,HQL用于sql优化)
希望:sql语句交给开发人员来编写;sql不失去灵活性
(2)Mybatis:半自动化框架
特点:sql与java代码分离;sql由开发人员控制
二、相关基本知识
1.接口式编程:Mapper.xml文件的namespace需要定义为接口的全类名 且select等方法的id需要和接口的方法绑定
2.Sqlsession和connection一样 都是非线程安全,不可以写成成员变量,私有也不行。每次使用都必须获取新的对象
3.mapper没有实现类 但是mybatis会为接口生成一个代理对象(将接口和xml绑定) * EmployeeMapper mapper=openSession.getMapper(EmployeeMapper.class);
非接口式编程写法:
接口式编程:
其中输出的代理对象为:
- 两个重要的配置文件:mybatis全局配置文件(可以没有):包含数据库连接池信息 事务管理器信息等…系统运行环境信息
sql映射文件:保存了每一个sql语句的映射信息( 将sql抽取出来 )