Mybaits

(二)Mybatis架构原理

架构设计 Mybatis的功能架构分为三层: API结构 提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层接收到调用请求就会调用数据处理层来完成具体的数据处理。 Mybatis和数据库的交互有两种方式:a. 使用传统的MyBatis提供的API;b. 使用Mapper代理的方式。 数据处理层 负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。 基础支撑层 负责最基础的功能支撑、包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。 主要构建及其相互关系 构件 描述 SqlSession 作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库层删改查。 Executor MyBatis执行器,是MyBatis调度的核心,负责SQL语句的生成和查询缓存的维护。 StatementHandler 封装了JDBC Statement操作,负责对JDBC Statement的操作,如设置参数、将Statement结果集转换为List集合。 ParameterHandler 负责对用户传递的参数转换成JDBC Statement所需要的参数。 ResultSetHandler...

Continue reading...

(一)自定义持久层设计思路

笔者开始对Mybaits源码进行分析、学习,并记录下学习的历程,既对自己的成长有帮助,也对有可能看到本文的读者起到帮助。 对直接使用JDBC链接数据库的读者或许知道,要操作数据库需要以下几部分(相关JDBC操作数据库代码可自行Google/Baidu): 指定驱动类; 指定数据库链接地址、数据库登陆账号及密码; SQL语句; 预执行SQL语句(PrepareStatement); 设置参数及执行; 封装返回结果集。 使用持久层框架可以在业务系统简化以上步骤的代码,将链接的创建、销毁;SQL的执行与结果封装等这些“模版类”代码交由持久层负责,程序员只需要关注业务代码(SQL)即可。其中1与2步骤交由业务系统指定,3-6由持久层框架本身处理。 项目工程(业务系统) 业务系统引入自定义持久层的Jar包,并提供Jar包所需要的两种配置信息: 1. 数据库配置信息(自定义为:sqlMapperConfig.xml) 数据库驱动类,如:com.msyql.jdbc.Driver等; 数据库地址及账号密码; mapper.xml全路径信息(在此处定义mapper.xml全路径信息的好处是Jar包只需要配置sqlMapperConfig.xml的路径即可,方便扩展)。 2. SQL配置信息(自定义为:mapper.xml) SQL语句 参数类型 返回值类型 自定义持久层框架(Jar包) 持久层框架的本质就是对JDBC代码进行封装 步骤1:加载配置文件 创建Resources类,根据配置文件的路径,加载配置文件成字节输入流,存放至内存中。类的方法:InputStream getResourceAsStram(String...

Continue reading...