A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

1. MyBatis和数据库的交互有两种方式:        1.1 通过传统的MyBatis提供的API:这是传统的传递statement Id和查询参数给sqlsession对象,使用sqlsession对象完成和数据库的交互;MyBatis提供了非常方便和简单的API,供用户实现对数据库的增删改查数据操作,以及对数据库连接信息和MyBatis自身配置信息的维护操作。上述使用MyBatis的方法,是创建一个和数据库打交道的sqlsession对象,然后根据statement Id 和参数来操作数据库,这种方式固然很简单和实用,但是它不符合面向对象语言的概念和面向接口编程的编程习惯。由于面向接口的编程是面向对象的大趋势,MyBatis为了适应这一趋势,增加了第二种使用MyBatis支持接口调用方式。
        1.2 MyBatis将配置文件中的每一个<mapper> 节点抽象为一个Mapper接口,而这个接口中声明的方法和跟<mapper> 节点中的<select|update|delete|insert> 节点项对应,即<select|update|delete|insert> 节点的id值为Mapper接口中的方法名称,parameterType 值表示Mapper对应方法的入参类型,而resultMap 值则对应了Mapper接口表示的返回值类型或者返回结果集的元素类型。
2. MyBatis的实现原理:
     利用反射打通Java类与SQL语句之间的相互转换。
3. MyBatis的主要成员
       Configuration        MyBatis所有的配置信息都保存在Configuration对象之中,配置文件中的大部分配置都会存储到该类中
       SqlSession            作为MyBatis工作的主要顶层API,表示和数据库交互时的会话,完成必要数据库增删改查功能
       Executor               MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护
       StatementHandler 封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数等
       ParameterHandler  负责对用户传递的参数转换成JDBC Statement 所对应的数据类型
       ResultSetHandler   负责将JDBC返回的ResultSet结果集对象转换成List类型的集合
       TypeHandler          负责java数据类型和jdbc数据类型(也可以说是数据表列类型)之间的映射和转换
       MappedStatement  MappedStatement维护一条<select|update|delete|insert>节点的封装
       SqlSource              负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回
       BoundSql              表示动态生成的SQL语句以及相应的参数信息
4. MyBatis的主要结构





1 个回复

倒序浏览
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马