简介
mybatis的前身叫ibatis,本是apache的一个开源项目, 2010年这个项目由apache software foundation 迁移到了google code,,并且改名为mybatis。mybatis是支持普通sql查询,存储过程和高级映射的优秀持久层框架。mybatis消除了几乎所有的jdbc代码和参数的手工设置以及结果集的检索。mybatis使用简单的xml或注解用于配置和原始映射,将接口和java的pojos(plan old java objects,普通的java对象)映射成数据库中的记录。
mybatis的功能架构分为三层(图片借用了百度百科):
1) api接口层:提供给外部使用的接口api,开发人员通过这些本地api来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
2) 数据处理层:负责具体的sql查找、sql解析、sql执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
3) 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
快速入门
mybatis的整体流程图
sqlsessionfactorybuilder
每一个mybatis的应用程序的入口是sqlsessionfactorybuilder,它的作用是通过xml配置文件创建configuration对象(当然也可以在程序中自行创建),然后通过build方法创建sqlsessionfactory对象。没有必要每次访问mybatis就创建一次sqlsessionfactorybuilder,通常的做法是创建一个全局的对象就可以了。示例程序如下:
private static sqlsessionfactorybuilder sqlsessionfactorybuilder;
private static sqlsessionfactory sqlsessionfactory;
private static void init() throws ioexception {
string resource = mybatis-config.xml;
reader reader = resources.getresourceasreader(resource);
sqlsessionfactorybuilder = new sqlsessionfactorybuilder();
sqlsessionfactory = sqlsessionfactorybuilder.build(reader);
}