标签:开关 命名 col 线程 ima int led mic names
一、Mybatis入门
1.为什么需要ORM框架
2.mybatis的三要素
SQL、映射规则、POJO
3.核心类分析
二、resultType还是resultMap
1.resultType
当使用resultType做SQL的返回结果时对于SQL语句查询的字段必须在POJO种有相同的的字段对应,resultType中的内容就是POJO的权限名
2.resultMap
resultMap是Mybatis中最强大元素,场景:1.自定义转化规则;2.复杂的SQL联合查询
用谁比较好?
强制使用resultMap,降低与DO之间的耦合,方便维护
三.怎么传多个参数
三种方式:
1.Map方式:杜绝使用,可读性差,维护性,扩展性差
2.注解方式:少于5个参数使用
3.Java Bean方式:大于5个参数使用
四.怎样通过Mybatis进行批量操作
1.foreach标签,进行动态SQL的拼装
2.使用Batch类型的Excutor
1 @Test 2 // 批量更新 3 public void testBatchExcutor() { 4 // 2.获取sqlSession 5 SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, true); 6 // 3.获取对应mapper 7 TUserMapper mapper = sqlSession.getMapper(TUserMapper.class); 8 9 User user1 = new User(); 10 user1.setUsername(xx); 11 System.out.println(mapper.insertSelective(user)); 12 13 User user2 = new User(); 14 user2.setUsername(xx); 15 System.out.println(mapper.updateIfAndSetOper(user1)); 16 17 sqlSession.commit(); 18 }
五.关联查询
1.超过三个表禁止JOIN。需要JOIN的表数据类型必须绝对一致;多表关联查询时要保证被关联的字段有索引
2.不得使用外键与级联,一切外键概念应该在应用层解决
3.字段允许适当的荣冗余,以提高查询性能,但必须考虑数据一致性
关联元素:association用于表示一对一关系,collection用于表示一对多关系
开发技巧:
1.resultMap可以通过使用extends实现继承关系,简化很多配置工作量(resultMap里面属性extends)
2.关联的表查询的类添加前缀是编程的好习惯(就是别名)
3.通过添加完整的命名空间,可以引用其他xml文件的resultMap(表关联association、collection)
association的属性
fetchType :数据加载方式,可选值为 lazy 和 eager,分别为延迟加载和积极加载 ,这个配置会覆盖全局的 lazyLoadingEnabled 配置(这个就时解决了一个“N+1”的问题)
六.缓存
一级缓存
二级缓存
开发建议:使用二级缓存容易出现脏读,建议避免使用二级缓存
调用过程解读:
标签:开关 命名 col 线程 ima int led mic names
原文地址:https://www.cnblogs.com/hysss/p/11450504.html