20.1MB
1.32MB
Mybatis是一个非常专业的持久层框架。该软件不仅可以支持自定义SQL、存储过程、高级映射等功能,还可以使用Mybatis的官方版本将Java的接口和POJOs映射到数据库中的记录。这个软件非常强大,适合专业程序员使用。
MyBatis是一个优秀的持久层框架,支持普通的SQL查询、存储过程和高级映射。MyBatis消除了几乎所有手动设置JDBC代码和参数以及检索结果集的工作。MyBatis使用简单的XML或注释进行配置和原始映射,并将接口和Java的POJOS(普通官方Java对象)映射到数据库中的记录。
每个MyBatis应用程序主要使用一个SqlSessionFactory的实例,通过SqlSessionFactoryBuilder可以获得一个SqlSessionFactory的实例。SqlSessionFactoryBuilder可以从xml配置文件或预定义配置类的实例中获取。
用xml文件构建SqlSessionFactory的实例非常简单。建议在此配置中使用类路径资源,但是您可以使用任何读取器实例,包括使用文件路径或以file:http://开头的url创建的实例。MyBatis有一个实用的类——Resources,有很多方法可以方便地从类路径等地方加载资源。
易学:它本身很小很简单。没有任何第三方依赖,最简单的安装只要配置两个jar文件+几个sql映射文件,易学易用。通过文档和源代码,你可以完全掌握它的设计思想和实现。
灵活:mybatis不会对应用程序或数据库的现有设计产生任何影响。Sql用xml编写,便于统一管理和优化。Sql语句可以满足数据库操作的所有要求。
将sql与程序代码解耦:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使得系统设计更加清晰,更易于维护,更易于单元测试。提高了可维护性。
提供映射标签,支持对象和数据库之间orm字段关系的映射。
提供对象关系映射标签,支持对象关系的建立和维护。
提供xml标记来支持编写动态sql。
功能建筑
(1)API接口层:提供给外部使用的接口API,开发者通过接口API操纵数据库。当接口层收到调用请求时,会调用数据处理层完成具体的数据处理。
(2)数据处理层:负责具体的SQL搜索、SQL分析、SQL执行以及执行结果的映射等。它的主要目的是根据调用请求完成一个数据库操作。
(3)基础支持层:负责最基础的功能支持,包括连接管理、事务管理、配置加载和缓存处理。这些都是常见的东西,提取出来作为最基本的成分。为上层数据处理层提供最基本的支持。
帧结构
(1)加载配置:配置来自两个地方,一个是配置文件,一个是Java代码的注释。SQL配置信息加载到MappedStatement对象中(包括传入参数映射配置、执行的SQL语句和结果映射配置)并存储在内存中。
(2)SQL解析:API接口层收到调用请求时,会收到传入SQL的ID和传入对象(可以是Map、JavaBean或基本数据类型)。Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入的parameter对象解析MappedStatement。解析后,可以获得最终要执行的SQL语句和参数。
(3)SQL执行:将最终得到的SQL和参数拿到数据库中执行,得到操作数据库的结果。
(4)结果映射:操作数据库的结果按照映射后的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,返回最终结果。
要使用mybatis,必须先使用配置或代码产生sqlsessionfactory,mybatis提供了构建器sqlsessionfactoryBuilder。他提供了一个班级组织。阿帕奇。伊巴提斯。会话。配置为导向,采用Builder模式,具体的发布在配置类中完成。
在mybatis中,可以以配置的xml文件或java代码的形式生成SQLSSESSIONFactory。个人强烈建议使用xml文件生成SQLSSESSIONFactory,因为需要修改时代码的形式会比较麻烦。在配置xml或者提供代码之后,mybatis会读取配置文件,通过配置类对象构建整个mybatis的上下文。
Sqlsessionfactory是一个接口,mybatis中有两个实现类:defaultSqlSessionfactory和sqlsessionManager;一般来说是用defaultSqlSessionfactory实现的,而SqlSessionfactory是在多线程环境下使用的,具体实现依赖于defaultfactory;
每一个基于mybatis的应用都是以一个sqlsessionfactory的实例为中心,而sqlsessionfactory唯一的作用就是产生mybatis的核心接口对象sqlsession,所以它的作用是唯一的。