MyBatis配置详解与API介绍(理论).ppt_第1页
MyBatis配置详解与API介绍(理论).ppt_第2页
MyBatis配置详解与API介绍(理论).ppt_第3页
MyBatis配置详解与API介绍(理论).ppt_第4页
MyBatis配置详解与API介绍(理论).ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章 MyBatis配置详解与API介绍,本章内容,Mybatis的结构与原理 Mybatis配置文件详解 SQL映射文件详解 Mybatis API介绍,本章目标,理解mybatis的运行流程 掌握mybatis的配置 掌握mybatis的映射文件 理解mybatis中的重要的类,Mybatis的结构与原理,MyBatis执行总体流程: (1)加载配置 (2)SQL解析 (3)SQL执行 (4)结果映射,MyBatis功能架构,API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一旦接收到调用请求就会调用数据处理层来完成具体的数据处理。 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。其主要的目的是根据调用的请求完成一次数据库操作。 基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的资源,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支持。,MyBatis配置文件,配置文件的结构,配置文件的元素properties,该元素是外部化的、可替代的属性,这些属性也可以配置在典型的Java属性配置文件中,或者通过properties元素的子元素来传递。例如: 其中的属性值就可以在整个配置文件中使用,使用可替换的属性来实现动态配置。例如: ,Settings,该元素是极其重要的参数设置,它们会修改MyBatis在运行时的行为方式。 ,typeAliases,类型别名即为Java类型命名一个短的名称。它仅同XML配置有关,只用于减少类完全限定名的多余部分。 ,typeHandlers,无论是MyBatis在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器均被用于将获取的值以合适的方式转换成Java类型。 ,/ ExampleTypeHandler.java public class ExampleTypeHandler implements TypeHandler public void setParameter(PreparedStatement ps, int i, Object parameter,JdbcType jdbcType) throws SQLException ps.setString(i, (String) parameter); public Object getResult(ResultSet rs, String columnName) throws SQLException return rs.getString(columnName); public Object getResult(CallableStatement cs, int columnIndex) throws SQLException return cs.getString(columnIndex); ,environments,MyBatis可以配置多种环境。这便于将SQL映射应用于多种数据库之中。 ,transactionManager,在MyBatis中,有两种事务管理器类型(即type=”JDBC|MANAGED”) (1)JDBC:该配置直接简单地使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。 (2)MANAGED :该配置几乎无用。它从来不提交或回滚一个连接,且它会让容器来管理事务的整个生命周期(如Spring或JEE应用服务器的上下文)。默认情况下,它会关闭连接。然而一些容器并不希望这样,因此,如果需要从连接中停止它,则需要将closeConnection属性设置为false。,dataSource,dataSource元素使用基本的JDBC数据源接口来配置JDBC连接对象的资源。 内建数据源类型(即type=”?”)有以下三种: (1)UNPOOLED (2)POOLED (3)JNDI,mappers,既然MyBatis的行为已经由上述元素配置完毕,那么我们现在要定义SQL映射语句。这些语句简单阐述了MyBatis要从哪里寻找映射文件,其余的细节便在每个SQL映射文件中。 ,SQL映射的XML文件,SQL映射文件包括以下几个很少的顶级元素(按照它们应该被定义的顺序排序): cache:配置给定命名空间的缓存。 cache-ref:从其他命名空间引用缓存配置。 resultMap:最复杂,也是最有力量的元素,用于描述如何从数据库结果集中加载对象。 sql:可重用的SQL块,也可以被其他语句引用。 insert:映射插入语句。 update:映射更新语句。 delete:映射删除语句。 select:映射查询语句。,select,查询语句是使用MyBatis时最常用的元素之一。当从数据库中取出数据时,会发现将数据存储在数据库中是很有价值的,所以许多应用程序的查询操作相较更改数据操作更多。 SELECT * FROM PERSON WHERE ID = #id 该语句被称为selectPerson,使用一个int(或Integer)类型的参数,并返回一个HashMap类型的对象,其中的键是列名,值是列对应的值。,Select中的属性, insert into Author (id,username,password,email,bio) values (#id,#username,#password,#email,#bio) update Author set username = #username, password = #password, email = #email, bio = #bio where id = #id delete from Author where id = #id ,insert、update和delete,数据修改语句insert、update和delete在它们的实现中非常相似,insert、update和delete的属性,sql,该元素可以被用于定义可重用的SQL代码段,可以包含在其他语句中。如: id,username,password 上述SQL片段可以被包含在其他语句中。如: select from some_table where id = #id ,resultMap,resultMap元素是MyBatis中最重要、最强大的元素。 解决列名与属性名称不匹配的问题: 其引用语句使用resultMap属性即可(注意,我们去掉了resultType属性)。例如: select user_id, user_name, hashed_password from some_table where id = #id ,Mybatis的范围与生命周期,SqlSessionFactoryBuilder:该类可以被实例化、使用和丢弃。 SqlSessionFactory:一旦被创建,SqlSessionFactory实例会一直存在于应用程序执行期间。 SqlSession:每个线程都应该有自己的SqlSession实例。 映射器实例:映射器是创建绑定映射语句的接口。映射器接口的实例可以从SqlSession中获得。从技术上而言,当被请求时,任意映射器实例的最宽范围和SqlSession是相同的。,SqlSession session = sqlSessionFactory.openSession(); try mapper = session.getMapper(BlogMapper.class); / do work finally session.close(); ,总结,Mybatis框架执行时的总体流程是: (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论