对mybatis的浅析

1.mybatis的介绍
mybatis是一个半自动化的优秀框架,面向接口编程。
对于操作sql的增删查改交给代理对象去完成。
不同于hibernate框架的全自动化黑箱操作需要花大量的时间精力学好HQL的使用。
mybatis将最重要的部分SQL语句的编写和优化交给开发人员来做。

2.关于mybatis的原理:
传入SqlSession对象和type参数,通过StatementID获取MappedStatement对象,Executor解析该对象后JDBC执行SQL
type:找到对应类的类型才能与之的sql语句关联 与xml文件进行绑定
SqlSession:用来执行sql语句
于是mapper.对应方法名()执行sql语句。

3.mybatis的使用
对于多个参数取值mybatis会封装成map(0,1)(param1,param2)。#{key} 底层遍历key拿到value封装成map
使用@Param(“id”)指定命名 #{id}
或者传pojo
或者传map(key,value) #{key}
若参数经常要使用可自定义pojo(Transfer Object)数据传输对象

#{} 使用预编译形式设置到sql语句中,防止sql注入
${} 直接值 用于非参数(分表时拿表名)

注意练习
.自定义规则级联表查询
.使用association(property,javaType),collection(ofType)标签进行分步查询
.延迟加载配置 lazyLoadingEnabled,agreessiveLazyLoading
.动态sql trim|where|set|foreach|if|choose|when|otherwise|bind 批量保存

4.mybatis的缓存 flushCache=true(清空一二)
一级缓存 对应不同的sqlSession。同一次会话时查询的数据存入到本地
二级缓存 对应不同的nameSpace。sqlSession会话关闭或提交后,mybatis会将数据存入二级缓存
readOnly=true 直接去二级缓存中读到数据,不安全但是速度快
默认非只读 readOnly=false mybatis认为数据可能会被修改,通过序列化/反序列化克隆一份数据给你
顺序 先二再一再数据库

自定义缓存:ehcache(hibernate中的缓存机制轻量高效),redis

5.mybatis整合spring-ssm
spring框架 ioc容器用来组装不同的资源及相互依赖使用。提供高效率的注解开发环境
springmvc spring的一个模块(web模块)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值