Mybatis小结(需要掌握的知识点)
关于Spring MVC框架,你应该:
- – 了解如何创建一个整合了Spring框架的Mybatis工程
- – 了解整合了Spring框架的Mybatis工程的配置
- – 掌握声明抽象方法的原则:
- – 返回值类型:增删改类型的操作均返回int,表示“受影响的行数”,查询类型操作,根据操作得到的结果集来决定 , 只要能够放入所有所需的数据即可,通常,统计查询返回int,查询最多1个结果时返回自定义的某个数据类型,查询多个结果时返回List集合类型
- – 方法名称:自定义,不要使用重载,其它命名建议参考此前的笔记
- – 参数列表:根据需要执行的SQL语句中的参数来设计,并且,当需要执行的是插入数据操作时,必须将这些参数进行封装,并在封装的类中添加主键属性,以便于Mybatis能获取自动编号的值回填到此主键属性中,当需要执行的是其它类型的操作时,如果参数数量较多 , 可以封装,如果只有1个,则直接声明为方法参数 , 如果超过1个且数量不多,则每个参数之前添加@Param注解
- – 了解使用注解配置SQL语句
- – 掌握使用XML配置SQL语句
- – 这类XML文件需要顶部特殊的声明,所以,通常是从网上下载或通过复制粘贴得到此类文件
- – 根节点必须是,且必须配置namespace,取值为对应的Java接口的全限定名
- – 应该根据要执行的SQL语句不同来选择、、、节点,这些节点都必须配置id属性,取值为对应的抽象方法的名称
- – 其实,节点和节点可以随意替换使用,但不推荐
- – 在不考虑“获取自动生成的主键值”的情况下 , 和、也可以混为一谈,但不推荐
- – 当插入数据时 , 当需要获取自动生成的主键值时,需要在节点上配置useGeneratedKeys和keyProperty属性
- – 在节点上 , 必须配置resultMap或resultType属性中的其中1个
- – 掌握使用封装SQL语句片段 , 并使用进行引用,以实现SQL语句的复用
- – 掌握的配置方式
- – 主键列与属性的映射必须使用节点配置
- – 在1对多、多对多的查询中 , 集合类型的属性的映射必须使用子节点配置
- – 其它列与属性的映射使用节点配置
- – 在单表查询中 , 列与属性名一致时,可以不必显式的配置,但是 , 在关联查询中,即使列与属性名称一致 , 也必须显式的配置出来
- – 理解resultType与resultMap使用原则
- – 尽可能的全部使用resultMap,如果查询结果是单一某个数据类型(例如基本数据类型或字符串或某个时间等),则使用resultType
- – 掌握动态SQL中的“的使用
使用#{}格式的占位符时,Mybatis在处理时会使用预编译的做法,所以,在编写SQL语句时不必关心数据类型的问题(例如字符串值不需要添加单引号),也不存在SQL注入的风险!这种占位符只能用于表示某个值,而不能表示SQL语句片段!
当使用${}格式的占位符时,Mybatis在处理时会先将参数值代入到SQL语句中 , 然后再执行编译相关过程,所以需要关心某些值的数据类型问题(例如涉及字符串值时 , 需要在编写SQL语句时添加一对单引号框住字符串),并且,存在SQL注入的风险!其优点是可以表示SQL语句中的任何片段!
Mybatis的缓存机制
缓存:通常是一个临时存储的数据,在未来的某个时间点可能会被删除
- 通常 , 存储缓存数据的位置是读写效率较高的,相比其它“非缓存”的数据有更高的处理效率
- 由于缓存的数据通常并不是必须的,则需要额外消耗一定的存储空间,同时由于从缓存获取数据的效率更高,所以是一种牺牲空间、换取时间的做法
- 另外,你必须知道,从数据库读取数据的效率是非常低下的
一级缓存是基于SqlSession的缓存,也称之为“会话缓存”,仅当是同一个会话、同一个Mapper、同一个抽象方法(同一个SQL语句)、同样的参数值时有效,一级缓存在集成框架的应用中默认是开启的,且整个过程不由人为控制(如果是自行得到SqlSession后的操作,可自行清理一级缓存)
- 怎么把一寸照片改成两寸 一寸转二寸照片的app
- 显示器帧数测试方法 刷新率和帧数的关系
- 无法提取嵌入的字体怎么办 mp4内嵌字幕的提取
- 机械密封的安装方法 机械密封型号及规格尺寸
- 手机cpu性能天梯图
- 细说四大银行的优势和劣势 四大银行
- 细说四大银行的优势和劣势 中国四大银行
- 温柔文艺浪漫的八字短句 8个字浪漫寄语
- 2023年各个属相的周岁年龄范围 今年是什么年
- 失职罪和渎职罪的区别 渎职是什么意思?