
Mybatis
文章平均质量分 96
云原生AI百宝箱
行万里路,此处相逢,共话云原生A之道。偶逗趣事,明月清风,与君同坐。已出版《Kubernetes:云原生与容器编排实战》,将出版《A大模型原理与场景应用》
展开
-
Mybatis源码解读-设计模式总结
虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:Builder模式,例如SqlSessionFactoryBuilder、XMLConfigBuilder、XMLMapperBuilder、XMLStatementBuilder、CacheBuilder; 工厂模式,例如SqlSessionFactory、ObjectFa转载 2021-04-07 09:53:47 · 1008 阅读 · 0 评论 -
Mybatis:Example类的使用--基本增删改查,模糊查询,排序,or,分页查询
MyBatis Generator 介绍MyBatis Generator:简称MBG,是一个专门为MyBatis框架使用者定制的代码生成器,可以快速的根据表生成对应的映射文件,接口,以及bean类。支持基本的增删改查,以及QBC风格的条件查询。但是表连接、 存储过程等这些复杂sql的定义需要我们手工编写。QBC检索QBC(Query By Criteria)是一种面向对象的查询方式,这种查询方式以函数API的方式动态地设置查询条件,组成查询语句。使用QBC(Query By Criter原创 2020-12-26 17:33:00 · 3736 阅读 · 1 评论 -
MyBatis 如何实现流式查询
目录基本概念MyBatis 流式查询接口但构建 Cursor 的过程不简单方案一:SqlSessionFactory方案二:TransactionTemplate方案三:@Transactional 注解基本概念流式查询指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好转载 2020-11-19 09:29:11 · 5259 阅读 · 4 评论 -
MyBatis:关联查询,相同字段名冲突(关联查询只返回了一条子记录)
解决办法在sql语句中给相同的属性起别名,同时设置 resultMap 中的column为别名案例:关联查询,相同字段名冲突需求,根据vrTaskUuid查询用户任务和步骤信息,需要根据vrTaskUuid关联查询vr_user_oper_info(任务信息)和vr_user_oper_step_info(步骤信息)SQL语句-关联查询Mapper配置<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE.原创 2020-11-04 14:11:39 · 3258 阅读 · 0 评论 -
Mybatis:通过on duplicate key update实现批量插入或更新
批量的saveOrupdate:<!--批量的插入 or 更新的操作--> <insert id="batchInsertStaff"> insert into xxxTable ( merchant_id, app_id, department_id, `name`, mobile, token, created_...原创 2020-01-16 14:26:19 · 31912 阅读 · 27 评论 -
Mybatis:高级知识3--查询缓存
查询缓存缓存的意义将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题。mybatis持久层缓存mybatis提供一级缓存和二级缓存mybatis一级缓存是一个SqlSession级别,sqlsession只能访问自己的一级缓存的数据,二级缓存是...原创 2019-03-06 21:48:15 · 9129 阅读 · 0 评论 -
Mybatis:高级知识2- 延迟加载
延迟加载使用延迟加载意义在进行数据查询时,为了提高数据库查询性能,尽量使用单表查询,因为单表查询比多表关联查询速度要快。如果查询单表就可以满足需求,一开始先查询单表,当需要关联信息时,再关联查询,当需要关联信息再查询这个叫延迟加载。mybatis中resultMap提供延迟加载功能,通过resultMap配置延迟加载。配置mybatis支持延迟加载 设置项 ...原创 2019-03-06 21:45:00 · 8976 阅读 · 0 评论 -
Mybatis:高级知识1- resultMap实现一对一、一对多、多对多
Mybatis是什么mybatis是一个持久层框架,是apache下的开源项目,前身是itbatis,是一个不完全的ORM框架,mybatis提供输入和输出的映射,需要程序员自己写sql语句,mybatis重点对 sql语句的灵活操作。适合用于:需求变化频繁, 数据模型不固定的项目,例如:互联网项目。mybatis架构SqlMapConfig.xml(名称不固定),配置...原创 2019-03-06 21:22:41 · 20771 阅读 · 0 评论 -
Mybatis:基础知识5-动态sql
动态sql(重点)mybatis重点是对sql的灵活解析和处理。需求将自定义查询条件查询用户列表和查询用户列表总记录数改为动态sqlif和wheresql片段通过sql片段可以将通用的sql语句抽取出来,单独定义,在其它的statement中可以引用sql片段。通用的sql语句,常用:where条件、查询列sql...原创 2019-03-06 17:18:06 · 9048 阅读 · 0 评论 -
Mybatis:基础知识4-输入和输出映射
输入和输出映射通过parameterType完成输入映射,通过resultType和resultMap完成输出映射。parameterType传递pojo包装对象可以定义pojo包装类型扩展mapper接口输入参数的内容。需求:自定义查询条件查询用户信息,需要向statement输入查询条件,查询条件可以有user信息、商品信息。。。。包装类型...原创 2019-03-06 16:40:36 · 9044 阅读 · 2 评论 -
Mybatis:基础知识3-sqlMapConfig.xml
sqlMapConfig.xmlSqlMapConfig.xml中配置的内容和顺序如下:properties(属性)settings(全局配置参数)typeAliases(类型别名)typeHandlers(类型处理器)objectFactory(对象工厂)plugins(插件)environments(环境集合属性对象)environment(环境子属性对象...原创 2019-03-06 16:19:56 · 9067 阅读 · 0 评论 -
Mybatis:基础知识2-mapper代理
mybatis开发dao的方法SqlSession作用范围是使用局部变量、成员变量???SqlSessionFactoryBuilderSqlSessionFactoryBuilder是以工具类方式来使用,需要创建sqlSessionFactory就new一个SqlSessionFactoryBuilder。sqlSessionFactory正常开发时,以单例...原创 2019-03-06 15:57:21 · 9029 阅读 · 0 评论 -
Mybatis:基础知识1-单表的增删改查
整个案例以订单商品的项目作为驱动本次讲解分为:基础知识和高级知识Mybatis:基础知识mybatis是一个java持久层框架,java中操作关系型数据库用的是jdbc,mybatis是对jdbc的一个封装。1、从一个jdbc程序开始,通过jdbc程序找到使用原生态的jdbc开发程序,存在哪些问题??通过学习mybatis,mybatis是如何解决这些问题。...原创 2019-03-06 12:08:01 · 9472 阅读 · 0 评论 -
MyBatis:#和$的区别
一、结论 #{}:占位符号,好处防止sql注入 ${}:sql拼接符号二、具体分析动态 SQL 是 mybatis 的强大特性之一,也是它优于其他 ORM 框架的一个重要原因。mybatis 在对 sql 语句进行预编译之前,会对 sql 进行动态解析,解析为一个 BoundSql 对象,也是在此处对动态 SQL 进行处理的。在动态 SQL 解析阶段, #{ } 和 ${ } ...转载 2019-03-05 16:42:28 · 586 阅读 · 0 评论 -
聊聊Hibernate和Mybatis的区别
1、开发对比 开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。 个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate 与Mybatis都是流行的持久层开发框架, 但Hibernate开发社区相对多热闹些,支持的工具也多,更新也快,当前最高版本4.1.8。...原创 2017-06-27 10:00:45 · 12662 阅读 · 0 评论