MyBatis配置详解与API介绍(理论).ppt

上传人:sh****n 文档编号:3355751 上传时间:2019-12-12 格式:PPT 页数:24 大小:1.81MB
返回 下载 相关 举报
MyBatis配置详解与API介绍(理论).ppt_第1页
第1页 / 共24页
MyBatis配置详解与API介绍(理论).ppt_第2页
第2页 / 共24页
MyBatis配置详解与API介绍(理论).ppt_第3页
第3页 / 共24页
点击查看更多>>
资源描述
第2章MyBatis配置详解与API介绍,本章内容,Mybatis的结构与原理Mybatis配置文件详解SQL映射文件详解MybatisAPI介绍,本章目标,理解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.javapublicclassExampleTypeHandlerimplementsTypeHandlerpublicvoidsetParameter(PreparedStatementps,inti,Objectparameter,JdbcTypejdbcType)throwsSQLExceptionps.setString(i,(String)parameter);publicObjectgetResult(ResultSetrs,StringcolumnName)throwsSQLExceptionreturnrs.getString(columnName);publicObjectgetResult(CallableStatementcs,intcolumnIndex)throwsSQLExceptionreturncs.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*FROMPERSONWHEREID=#id该语句被称为selectPerson,使用一个int(或Integer)类型的参数,并返回一个HashMap类型的对象,其中的键是列名,值是列对应的值。,Select中的属性,insertintoAuthor(id,username,password,email,bio)values(#id,#username,#password,#email,#bio)updateAuthorsetusername=#username,password=#password,email=#email,bio=#biowhereid=#iddeletefromAuthorwhereid=#id,insert、update和delete,数据修改语句insert、update和delete在它们的实现中非常相似,insert、update和delete的属性,sql,该元素可以被用于定义可重用的SQL代码段,可以包含在其他语句中。如:id,username,password上述SQL片段可以被包含在其他语句中。如:selectfromsome_tablewhereid=#id,resultMap,resultMap元素是MyBatis中最重要、最强大的元素。解决列名与属性名称不匹配的问题:其引用语句使用resultMap属性即可(注意,我们去掉了resultType属性)。例如:selectuser_id,user_name,hashed_passwordfromsome_tablewhereid=#id,Mybatis的范围与生命周期,SqlSessionFactoryBuilder:该类可以被实例化、使用和丢弃。SqlSessionFactory:一旦被创建,SqlSessionFactory实例会一直存在于应用程序执行期间。SqlSession:每个线程都应该有自己的SqlSession实例。映射器实例:映射器是创建绑定映射语句的接口。映射器接口的实例可以从SqlSession中获得。从技术上而言,当被请求时,任意映射器实例的最宽范围和SqlSession是相同的。,SqlSessionsession=sqlSessionFactory.openSession();trymapper=session.getMapper(BlogMapper.class);/doworkfinallysession.close();,总结,Mybatis框架执行时的总体流程是:(1)加载配置。(2)SQL解析。(3)SQL执行。(4)结果映射。Mybatis配置文件的主要元素有:properties、settings、typeAliases、transactionManager、dataSource和mappers。SQL映射配置的主要元素有:select、insert、update和delete。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!