2016.6.25 Mybatis 框架(十三) 前十二 章总结

mybatis是什么?

mybatis是一个持久层框架,是一个不完全的ORM框架,sql语句需要程序员自己去写

mybatis也有映射(输入参数映射、输出结果映射)

mybatis入门门槛不高,学习成本低,让程序员把精力放在sql语句上,

对sql语句优化非常方便,适用于需求变化较多的项目,比如互联网项目

mybatis框架执行过程

1. 配置mybatis的配置文件,sqlMapConfig.xml(名称固定不变)

2. 通过配置文件,加载mybatis运行环境,创建SqlSessionFactory会话工厂

SqlSessionFactory 执行按单例方式

3. 通过SqlSessionFactory 创建SqlSession

SqlSession是一个面向用户接口(提供操作数据库方法),实现对象是线程不安全的,

建议sqlSession的创建在方法体内。

4. 调用sqlSession的方法去操作数据

如果需要提交事务,需要执行sqlSession的 commit()方法。

5. 释放资源,关闭SqlSession。

mybatis开发dao方法

1. 原始Dao的方法

需要程序员编写dao接口和实现类。

需要在dao实现类中注入一个SqlSessionFActory工厂

2. mapper代理开发方法

只需要程序员编写mapper接口,(即是dao接口)

程序员在编写 mapper.xml映射文件   和

mapper.java需要遵循一个开发规范:

1> 在mapper.xml中namesapce 就是mapper.java 的全路径

2> mapper.xml中statement的id 和mapper.java中方法名一致

3> mapper.xml中statement的parameterType指定输入参数的类型和 mapper.java的方法输入参数类型一致

4> mapper.xml 中statement resultType指定输出结果的类型和mapper.java的方法返回值类型一致

sqlMapperConfig.xml

配置文件,可以配置properties属性、别名、mapper加载

输入映射

parameterType:指定输入参数类型,可以是简单类型、pojo、hashmap

输出映射

resultType

resultMap

高级映射

将关联查询的列映射到一个pojo的属性中 (一对一)

将关联查询的列映射奥一个list<pojo>    (一对多)

动态sql:(重点)

if判断

where

foreach

sql片段

时间: 2024-11-05 22:08:17

2016.6.25 Mybatis 框架(十三) 前十二 章总结的相关文章

2016.5.25 Mybatis 框架(三) Mybatis 框架原理

1. mybatis是什么? mybatis是一个持久层框架,是apache下的顶级项目 先是托管到googlecode下,后托管到github下(https://github.com/mybatis-3/release) mybatis让程序员将主要精力放在sql上,通过mybatis提供的映射方式,自由灵活生成满足 需要的sql语句(半自动化,大部分需要程序员编写sql) mybatis可以将向preparedStatement中的输入参数 自动进行输入映射, 将查询结果集灵活映射成java

第十二章 APO编程语言

第十二章      APO编程语言 APO编程语言是基于汇编语言和面向对象编程.基本指令只有7种:赋值指令.COPY指令.BTX(位X测试为1.或0转移)指令.查表跳转指令switch(RN){-.}.移位与循环指令S.三操作数运算指令.调用与返回指令.所有的指令大小.除了32位立即数赋值是2字外:其它都是32位,一个字. 指令执行时间,除了32位立即数赋值是2ns.COPY指令取决于拷贝的长度外:其它指令都是1ns. 应用程序只能使用R0-R4,R8-R15的21个寄存器作为高速的寄存器局部变

Android群英传笔记——第十二章:Android5.X 新特性详解,Material Design UI的新体验

Android群英传笔记--第十二章:Android5.X 新特性详解,Material Design UI的新体验 第十一章为什么不写,因为我很早之前就已经写过了,有需要的可以去看 Android高效率编码-第三方SDK详解系列(二)--Bmob后端云开发,实现登录注册,更改资料,修改密码,邮箱验证,上传,下载,推送消息,缩略图加载等功能 这一章很多,但是很有趣,也是这书的最后一章知识点了,我现在还在考虑要不要写这个拼图和2048的案例,在此之前,我们先来玩玩Android5.X的新特性吧!

进击的Python【第十二章】:mysql介绍与简单操作,sqlachemy介绍与简单应用

进击的Python[第十二章]:mysql介绍与简单操作,sqlachemy介绍与简单应用 一.数据库介绍 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据.我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢.所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量.所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来

perl5 第十二章 Perl5中的引用/指针

第十二章 Perl5中的引用/指针 by flamephoenix 一.引用简介二.使用引用三.使用反斜线(\)操作符四.引用和数组五.多维数组六.子程序的引用  子程序模板七.数组与子程序八.文件句柄的引用 一.引用简介    引用就是指针,可以指向变量.数组.哈希表(也叫关联数组)甚至子程序.Pascal或C程序员应该对引用(即指针)的概念很熟悉,引用就是某值的地址,对其的使用则取决于程序员和语言的规定.在Perl中,可以把引用称为指针,二者是通用的,无差别的.引用在创建复杂数据方面十分有用

C和指针 (pointers on C)——第十二章:使用结构和指针

第十二章 使用结构和指针 这章就是链表.先单链表,后双向链表. 总结: 单链表是一种使用指针来存储值的数据结构.链表中的每个节点包含一个字段,用于指向链表的下一个节点. 有一个独立的根指针指向链表的第1个节点.单链表只能从一个方向遍历. 如何insert单链表:1.新节点的link字段必须设置为指向它的后面节点.2.前一个节点的link字段必须指向这个新节点. 为了防止可能会插入链表的起始位置这种情况,在C中,可以保存一个指向必须进行修改的link字段的指针,而不是保存一个指向前一个节点的指针.

C primer plus 第五版十二章习题

看完C prime plus(第五版)第十二章,随带完成了后面的习题. 1.不使用全局变量,重写程序清单12.4的程序. 先贴出12.4的程序,方便对照: 1 /* global.c --- 使用外部变量 */ 2 #include <stdio.h> 3 int units = 0; //一个外部变量 4 void critic(void); 5 int main(void) 6 { 7 extern int units; 8 9 printf ("How many pounds

JavaScript DOM编程艺术-学习笔记(第十二章)

第十二章 1.本章是综合前面章节的所有东西的,一个综合实例 2.流程:①项目简介:a.获取原始资料(包括文本.图片.音视频等) b.站点结构(文件目录结构) c.页面(文件)结构 ②设计(切图) ③css -  base.css用于引入使用的css文件 color.css  - 用于设置样式 layout.css - 用于设置布局 Typography.css - 用于设置版式 3.题外话:①在实际开发中,即使是一个空白项目也往往不会从一无所有做起,而借助的平台一般会提供目录结构,所以需要把自己

R in action读书笔记(16)第十二章 重抽样与自助法之 置换检验

第十二章:重抽样与自助法 本章,我们将探究两种应用广泛的依据随机化思想的统计方法:置换检验和自助法 12.1 置换检验 置换检验,也称随机化检验或重随机化检验. 有两种处理条件的实验,十个受试者已经被随机分配到其中一种条件(A或B)中,相应的结果变量(score)也已经被记录.实验结果如下: 如果两种处理方式真的等价,那么分配给观测得分的标签(A处理或B处理)便是任意的.为检验两种处理方式的差异,我们可遵循如下步骤: (1) 与参数方法类似,计算观测数据的t统计量,称为t0: (2) 将10个得