mybatis是什么?
mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架(因为mybatis提供输入和输出的映射,需要程序员自己写sql语句),所以mybatis重点是对 sql语句的灵活操作。
适合用于:需求变化频繁, 数据模型不固定的项目,例如:互联网项目。 mybatis架构?
SqlMapConfig.xml(名称不固定),配置内容:数据源、事务、properties、typeAliases、settings、mapper配置。 SqlSessionFactory--会话工厂,作用是创建SqlSession,实际开发中以单例模式管理 SqlSessionFactory。 SqlSession--会话,是一个面向用户(程序员)的接口,使用mapper代理方法开发是不需要程序员直接调用sqlSession的方法。是线程不安全,最佳适用场合方法体内。 mybatis开发dao的方法:
1、原始dao开发方法,需要程序员编写dao接口和实现类,此方法在当前企业中还有使用,因为ibatis使用的就是原始dao开发方法。
2、mapper代理方法,程序员只需要写mapper接口(相当于dao接口),不用写实现类,mybatis自动根据mapper接口和mapper接口对应的statement自动生成代理对象(接口实现类对象)。
开发需要遵循规则:
1)mapper.xml和mapper.java连接起来,因此mapper.xml中namespace是mapper接口的全限定名
2)mapper.xml中statement的id为mapper接口方法名
3)mapper.xml中statement的输入映射类型(parameterType)和mapper接口方法输入参数类型一致
4) mapper.xml中statement的输出映射类型(resultType)和mapper接口方法返回结果类型一致 resultType和resultMap都可以完成输出映射:
resultType映射要求sql查询的列名和输出映射pojo(自定义java类)类型的属性名一致
resultMap映射时对sql查询的列名和输出映射pojo类型的属性名作一个对应关系。 动态sql:
#{}和${}完成输入参数的属性值获取,通过OGNL获取parameterType指定pojo的属性名。
#{}:占位符号,好处防止sql注入
${}:sql拼接符号
if
where
foreach
1、使用resultMap完成高级映射(重点)
学习商品订单数据模型(一对一、一对多、多对多)
resultMap实现一对一、一对多、多对多
延迟加载 2、查询缓存(重点)
一级缓存
二级缓存 3、mbatis和spring整合(重点) 4、mybatis逆向工程(常用)
商品订单数据模型
学会在企业中如何去分析陌生表的数据模型:
1、学习单表记录了什么东西(去学习理解需求)
2、学习单表重要字段的意义(优先学习不能为空的字段)
3、学习表与表之间的关系(一对一、一对多、多对多)
通过表的外键分析表之间的关系
注意:分析表与表之间的关系时是要建立在具体 的业务意义基础之上

mybatis0201 01复习的更多相关文章

  1. JS高级. 01 复习JS基础

    1. JavaScript 包含: ____, ____, 和 ____. 2. JavaScript 的基本类型有 ____, ____, 和 ____. 3. JavaScript 的复合类型有 ...

  2. 23----2013.07.01---Div和Span区别,Css常用属性,选择器,使用css的方式,脱离文档流,div+css布局,盒子模型,框架,js基本介绍

    01 复习内容 复习之前的知识点 02演示VS创建元素 03div和span区别 通过display属性进行DIV与Span之间的转换.div->span 设置display:inline   ...

  3. python就业班-淘宝-目录.txt

    卷 TOSHIBA EXT 的文件夹 PATH 列表卷序列号为 AE86-8E8DF:.│ python就业班-淘宝-目录.txt│ ├─01 网络编程│ ├─01-基本概念│ │ 01-网络通信概述 ...

  4. Python全栈开发第二期课表

     day01-python 全栈开发-基础篇                 01 开课介绍 01:55:13 ★  02 开课介绍02 01:28:31 ★  03 开课介绍03 00:22:55 ...

  5. js初学总结

    基础 交换变量方式 //利用第三方变量进行交换 var num1 = 10; var num2 = 20; var temp; temp = num1; num1 = num2; num2 = tem ...

  6. 满血复活前的记录(持续更新ing)

    时隔一年重新开启算法竞赛征程. 该记录大多为老课件.已经做过的习题重做和已经看过的书本重看 7.21 下午到山大 娄晨耀basic_algorithm课件中的内容: 复习线性筛原理 复习差分 做完Co ...

  7. COGS 68. [NOIP2005] 采药【01背包复习】

    68. [NOIP2005] 采药 ★   输入文件:medic.in   输出文件:medic.out   简单对比 时间限制:1 s   内存限制:128 MB [问题描述] 辰辰是个天资聪颖的孩 ...

  8. COGS 144. [USACO Dec07] 魅力手镯【01背包复习】

    144. [USACO Dec07] 魅力手镯 ★   输入文件:charm.in   输出文件:charm.out   简单对比 时间限制:1 s   内存限制:8 MB 译 by CmYkRgB1 ...

  9. day 21 01 序列化模块和模块的导入的复习以及包的初识

    day 21 01 序列化和模块的导入的复习以及包的初识 1.序列化模块 什么是序列化模块:数据类型转化成字符串的过程就是序列卷 为什么要使用序列化模块:为了方便存储和网络传输 三种序列化模块: (1 ...

随机推荐

  1. BZOJ 1715: [Usaco2006 Dec]Wormholes 虫洞

    Description John在他的农场中闲逛时发现了许多虫洞.虫洞可以看作一条十分奇特的有向边,并可以使你返回到过去的一个时刻(相对你进入虫洞之前).John的每个农场有M条小路(无向边)连接着N ...

  2. 【HDU4333】Revolving Digits(扩展KMP+KMP)

    Revolving Digits   Description One day Silence is interested in revolving the digits of a positive i ...

  3. leetcode面试准备: CountPrimes

    1 题目 Description: Count the number of prime numbers less than a non-negative number, n. 接口:public in ...

  4. 关于MIUI6下使用Widget调用Toast的一个问题

    编写了一个Widget程序,在继承AppWidgetProvider类中调用Toast,发现如下问题: 在小米2,MIUI Version:MIUI5.6.4|Beta, Android Versio ...

  5. bzoj1486

    这里学了一个新知识叫分数规划这道题目是求∑w[i]/S最小首先二分答案k,然后如果某个环∑w[i]/S<=k即∑w[i]<=k*S-->∑w[i]-k*S<=0--->∑ ...

  6. [NYOJ 860] 又见01背包

    又见01背包 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述     有n个重量和价值分别为wi 和 vi 的 物品,从这些物品中选择总重量不超过 W  的物品,求所 ...

  7. 大型邮箱smtp服务器及端口 收集

    各大型邮箱smtp服务器及端口收集: 新浪邮箱smtp服务器 外发服务器:smtp.vip.sina.com 收件服务器:pop3.vip.sina.com 新浪免费邮件 外发服务器:smtp.sin ...

  8. [转]web调试工具总结(firebug/fidder/httpwatch/wireshark)

    ONE:Firebug: Firebug是网页浏览器 Mozilla Firefox下的一款开发类插件, 现属于Firefox的五星级强力推荐插件之一.它集HTML查看和编辑.Javascript控制 ...

  9. linux 以root用户登录ftp

    ftp默认禁止以root用户登录. 可以修改 /etc/ftpusers 文件,把root注释掉,即可以root用户登录ftp

  10. sql 将Null 值转化成空字符串

    当Null + 任何字符串时,都等于Null. 因些用函数IsNull(字段名,''),如果字段名中的值是Null时,那么这个字段名的值是''. 例如::select code + IsNull('- ...