栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA(二)Mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA(二)Mybatis

1.mybatis-helper-pro

2.Lombok

3.自定义模版

4.动态sql

        4.1 where标签

  • 可以帮助拼接where关键字
  • 可以帮助自动去除与where关键字相邻的and或者or关键字
  • 在where标签与if联合使用的时候,如果if标签里没有满足条件,那么where可以帮助我们智能的不拼接where关键字

        4.2 if标签

  •  test里是一个布尔表达式的值,OGNL表达式

 可以写大于,小于,大于等于,小于等于,不等于,等于

        4.3 choose when 

        与if相比只要有一个满足就停止选择

         4.4 include

 4.5 trim

去除最后的","

 

 4.6 foreach

作用在SQL语句中进行循环

  • 插入一个list
  • in查询,传入一个数组

标签 

插入一个集合(批量插入)

 标签

 7.9

 可以获得插入值的自增ID;

8.多表查询

连接查询 

select语句直接写成连接

 分次查询

把user表的id传递给第二个表的userdesc表的user_id

把员工表的部门d_id传递给部门表的id

 1对多

 注意:这里的引用类型是一个集合,所以我们使用的是(一对一的时候使用的是association)collection标签(班级里的成员变量学生集合)

ofType:指的是集合里面的元素

select:第二次查询的sql语句的坐标

colum:传递的字段

连接查询(collection标签)

总结:column指查询出的字段的名字

property指类里的成员属性

如果是单个成员变量做属性()配合javatype(可以省略)

通过成员变量是集合list用() 配合ofType

8.1多对多查询

分步:单次查询+第二次连接中间表的查询

两个表分别维护对方的一个集合成员变量;

 s_c是关系维护表

连接查询(与一对多的连接查询一致)上第二张蓝色图

//只需要考虑查询出的字段在map里与类里成员变量的对应(中间表不用理会)

 分次查询与连接查询的对比

  • 在数据里不大的情况下,连接查询较快;
  • 在数据里较大的时候,分步查询较快,因为如果A表有100W数据,那么B表有100W条,此时连接查询会较慢,因为连接查询是在笛卡尔乘积基础上做筛选.
9 缓存与懒加载 9.1懒加载

在分布查询中,全局开启懒加载(如果不用到第二次的查询结果,就不会调用第二次的查询语句)

局部查询开启懒加载

 9.2缓存

Mybbatis的懒加载与缓存都是为了提升其效率的特性

9.2.1一级缓存 Mybatis自带一级缓存,无法关闭;一级缓存是一个sqlSession级别的缓存,

意思是我们使用同一个sqlsession执行相同的sql语句传入同样参数的时候会查询sqlsession一级缓存中的数据

只要是一个sqlsession是不是一个mapper没有影响

以一个sqlSession为准

  • 一级缓存什么时候失效?
    • 当连接关闭的时候会失效        
    • 当发生commit的时候会失效(因为发生了增删改)
9.2.2二级缓存

二级缓存功能比一级缓存要更加强大一些,默认是关闭的

以一个nameSpace为准

  • 对象实现序列化
  • xml中开启二级缓存标签

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/349121.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号