ORM_mybatis讲解

转载 2018年04月16日 14:19:29

mybatis 是一个ORM框架,MyBatis作为持久层框架,其主要思想是将程序中的大量sql语句剥离出来,配置在配置文件中,实现sql的灵活配置。这样做的好处是将sql与程序代码分离,可以在不修改程序代码的情况下,直接在配置文件中修改sql。下面给个简单的入门例子。

工作流程:

(1)加载配置并初始化
触发条件:加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求 触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(E)释放连接资源。
(4)返回处理结果将最终的处理结果返回。
我们把Mybatis的功能架构分为三层:
(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

4,在DAO层添加基于每个dao文件的**DAO.config配置文件,在这个文件里标注类型别名和书写要操作的sql语句:

ORM_mybatis - hui1107464497 - hui1107464497的博客

其中:parameterClass用来指定入参,resultClass指定出参

5,此时可以在DAO层直接使用了:

using IBatisNet.DataMapper;

SqlMap.QueryForList<TaskEntity>("SSL.Entity.SelectTask", 12);

返回id=12的实体。

4,在DAO层添加基于每个dao文件的**DAO.config配置文件,在这个文件里标注类型别名和书写要操作的sql语句:

ORM_mybatis - hui1107464497 - hui1107464497的博客

其中:parameterClass用来指定入参,resultClass指定出参

5,此时可以再DAO层直接使用了:

using IBatisNet.DataMapper;

SqlMap.QueryForList<TaskEntity>("SSL.Entity.SelectTask", 12);

返回id=12的实体。

1,引入类库:IBatisNet.DataMapper.dll、IBatisNet.Common.dll 

2,添加配置文件:Providers.config(连接数据库配置,包含对各种数据库的字符串配置)

                              Properties.config(配置登陆的数据库,用户、密码)

                              SqlMap.config(Ibatis核心配置文件,包含上边两个文件的指定,同时还定义了其它的DataMapper配置选项,如缓存等,在其<sqlMaps>中添加对每个数据源配置文件的配置)

 

3,在web.config中将上一步的sqlmap.config文件配置为对象添加到spring的上下文容器中,以作为属性向DAO文件注入。

ORM_mybatis - hui1107464497 - hui1107464497的博客

4,在DAO层添加基于每个dao文件的**DAO.config配置文件,在这个文件里标注类型别名和书写要操作的sql语句:

ORM_mybatis - hui1107464497 - hui1107464497的博客

其中:parameterClass用来指定入参,resultClass指定出参

5,此时可以再DAO层直接使用了:

using IBatisNet.DataMapper;

SqlMap.QueryForList<TaskEntity>("SSL.Entity.SelectTask", 12);

返回id=12的实体。

MyCat实战讲解(MySQL集群)

-
  • 1970年01月01日 08:00

《2018跟着小虎玩着去软考--小虎新视角历年信息系统项目管理师试题讲解(2014-2017)》最新自序

  • littletigerat
  • littletigerat
  • 2018-01-18 12:48:11
  • 204

大牛讲解信号与系统

http://blog.csdn.net/KISSMonX/article/details/9303437
  • gtkknd
  • gtkknd
  • 2015-01-04 17:36:41
  • 452

Unity5权威讲解之菜鸟读书笔记(四)

Unity5权威讲解之菜鸟读书笔记(四) 16.Mecanim动画系统 动画类型 类型 特征 Legacy Unity4.0 之前版本中使用的动画系統 Generic Mecani...
  • qq_40695551
  • qq_40695551
  • 2017-11-15 13:18:08
  • 172

Unity5权威讲解之菜鸟读书笔记(一)

Unity5权威讲解读书笔记(一)    emmm这本书自我感觉很适合我这个菜鸟来读,主要讲解了如何制作第三人称的射击游戏(fps),同时介绍游戏开发的必备技巧和技术,实用性很强有种深入浅出的感觉....
  • qq_40695551
  • qq_40695551
  • 2017-11-07 10:08:42
  • 555

硬件——简易讲解运放。

前言:            虽然本博客主要是讲解单片机的不过对于初学电子的人员而言。一定的硬件知识是必须的。而且书本上的教学方式太正确,太具体一本厚厚的模拟电路。吓都吓死人了。让人摸不到重点。太具体...
  • superanters
  • superanters
  • 2013-08-06 16:22:51
  • 2983

排列组合讲解

排列组合是组合学最基本的概念。所谓排列,就是指从给定个数的元素中取出指定个数的元素进行排序。组合则是指从给定个数的元素中仅仅取出指定个数的元素,不考虑排序。排列组合的中心问题是研究给定要求的排列和组合...
  • u010258605
  • u010258605
  • 2015-02-07 09:56:57
  • 4714

分页查询详解

分页查询在web开发中是最常见的一种技术,最近在通过查资料,有一点自己的心得 一、mysql中的分页查询 注:m=(pageNum-1)*pageSize;n= pageSize; pageNu...
  • henulwj
  • henulwj
  • 2012-08-16 10:53:41
  • 849

2018小虎软考书《信息系统项目管理师历年试题讲解之小虎新视角讲解》即将新鲜上市

2018小虎软考书《信息系统项目管理师历年试题讲解之小虎新视角讲解》即将新鲜上市...
  • littletigerat
  • littletigerat
  • 2018-03-01 12:44:45
  • 89

2018跟着小虎玩着去软考--信息系统项目管理师小虎新视角讲解----即将新鲜火热上市

2018跟着小虎玩着去软考--信息系统项目管理师小虎新视角讲解----即将新鲜火热上市...
  • littletigerat
  • littletigerat
  • 2018-01-22 21:59:53
  • 346
收藏助手
不良信息举报
您举报文章:ORM_mybatis讲解
举报原因:
原因补充:

(最多只允许输入30个字)