mybatis0201 01复习
2015-10-11 21:49
253 查看
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、学习表与表之间的关系(一对一、一对多、多对多) 通过表的外键分析表之间的关系 注意:分析表与表之间的关系时是要建立在具体 的业务意义基础之上
相关文章推荐
- ucos关于互斥信号量
- hdu 5481 Desiderium(高效)
- 截取web页面访问时间(Apache)
- IOS 录音与播放
- manacher算法实现
- linux下的软件管理(yum仓库)
- STM32输出2路PWM-------------------------------major
- C/C++基础总结(一)
- 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-02-Example
- 面试,一点小心得
- CodeForces 128D Numbers [想法题/贪心]
- AngularJS学习总结
- php的几种标记
- 最长上升子序列 O(nlogn)解法 (转)
- 15、Hibernate的原生sql查询,优化Hibernate的查询效率
- 产品UI设计排版的四个基本原则
- js typeof instanceof
- XAMMP Port 443 in use by
- hdu 5480 Conturbatio(水)
- 系统开发技术栈