随笔分类 - Mybatis
摘要:引言 前面一篇文章,介绍了多表查询,在实际使用中,我们会经常性的涉及到多表联合查询,但是有时候,并不会立即用到所有的查询结果,我来举两个例子: 例如,查询一批笔记本电脑的进货明细,而不直接展示每列明细对应电脑配置或者价格等的详细信息,等到用户需要取出某笔记本相关的详细信息的时候,再进行单表查询 再例
阅读全文
摘要:什么是 Mybatis? MyBatis 的优点 MyBatis 框架的缺点 MyBatis 框架适用场合 MyBatis 与 Hibernate 有哪些不同? #{}和${}的区别是什么? 当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 模糊查询 like 语句该怎么写? Mapper 接口
阅读全文
摘要:缓存原理图: 一、一级缓存(本地缓存) sqlSession级别的缓存。(相当于一个方法内的缓存) 每一次会话都对应自己的一级缓存,作用范围比较小,一旦会话关闭就查询不到了; 一级缓存默认是一直开启的,是SqlSession级别的一个Map;与数据库同一次会话期间查询到的数据会放在本地缓存中。以后如
阅读全文
摘要:<insert id="insertRecordList" parameterType="java.util.List"> INSERT INTO e_record_access (video_url, access_time, access_address, device_type, device
阅读全文
摘要:这里有一个删除方法: 为什么呢?因为if里面用了mybatis的内置对象,例如这里:“ <if test="siteid !=0">”
阅读全文
摘要:本文仅对使用MyBatis-Plus的代码生成器配置做保存,适合使用了该插件的童鞋做参考。 内部有大量默认配置,有性趣的童鞋可以研究下源码。 ps:官方文档更齐全http://mp.baomidou.com/ package com.kichun.ucenter.service; import co
阅读全文
摘要:问题描述在使用mybatis进行开发的时候,由于可以动态拼接sql,这样大大方便了我们。但是也有一定的问题,当我们动态sql拼接的块很多的时候,我们要想从*mapper.xml中直接找出完整的sql就会非常的难,这个时候经常会需要把组合之后的完整sql调试出来比较好。下面来看两种调试出sql的两种方
阅读全文
摘要:在mybatis如何进行一对一、一对多的多表查询呢?这里用一个简单的例子说明。 yml文件配置 一、一对一 1、association association通常用来映射一对一的关系,例如,有个类user,对应的实体类如下:(getter,setter方法省略) 有个类Article,对应的实体类如
阅读全文
摘要:insert,返回值是:新插入行的主键(primary key);需要包含<selectKey>语句,才会返回主键,否则返回值为null。 update/delete,返回值是:更新或删除的行数;无需指明resultClass;但如果有约束异常而删除失败,只能去捕捉异常。
阅读全文
摘要:概念:所谓懒加载就是延时加载,延迟加载。什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载。至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,我们让数据在需要的时候才进行加载,这时我们就用到了懒加载实现:MyBa
阅读全文
摘要:在mybatis接口mapper文件中引用传入的参数是通过#{param}或者${param}来使用的。 1.数据类型匹配 #:会进行预编译,而且进行类型匹配 $:不进行数据类型匹配 2.实现方式 #:用于变量替换 $:实质上是字符串拼接 3.#和$的使用场景 (1)变量的传递,必须使用#,使用#{
阅读全文
摘要:set标记是mybatis提供的一个智能标记,我一般将其用在修改的sql中,例如以下情况: <update> update user <set> <if test="name != null and name.length()>0">name = #{name},</if> <if test="ge
阅读全文
摘要:1. 参数中直接加入%% 2. bind标签 3. CONCAT 4. “%”#{username}“%”
阅读全文