
MyBatis
MyBatis
JavaEdge聊AI
关注并私信我,获取更多大厂求职经验。《编程严选网》创始人
展开
-
02-MybatisPlus批量插入性能够吗?
不要用 mybatis-plus 的批量插入,它其实也是遍历插入,性能很差的”。真的吗?遍历插入,反复创建。这是一个重量级操作,所以性能差。这里不用看源码也知道,因为这个和mybatis-plus没关系,而且我们现在使用SpringBoot,一般也用它的JDBC启动依赖。连接和连接池不是本文重点,总之这观点纯属无稽之谈,和不懂技术的领导说话一个德行一条 insert 就一次网络IO,数量多了,这是个很可观且没必要的开销,所以性能差。原创 2024-06-14 15:32:35 · 794 阅读 · 0 评论 -
MybatisPlus的updateById
当我就是不想用lambda构造器和条件构造器时,我可以按 id 来更新数据:原创 2022-07-07 14:35:42 · 4300 阅读 · 1 评论 -
为什么会有人写 where1=1?
很多业务mapper 中都包含了一个无用的拼接 SQL:where 1=1,这是为何?先尝试去掉它看看会咋样:当省略 name 参数时就抛出了异常:其实不用,在 MyBatis 中早已经想到了这个问题,将 SQL 中的 where 关键字换成 MyBatis 中的标签,并且给每个标签内都加上 and 拼接符即可...原创 2021-11-22 16:19:23 · 1105 阅读 · 1 评论 -
【MyBatis-plus】条件构造器详解
sidebarDepth: 3条件构造器说明以下出现的第一个入参boolean condition表示该条件是否加入最后生成的SQL中,例如:query.like(StringUtils.isNotBlank(name), Entity::getName, name) .eq(age!=null && age >= 0, Entity::getAge, age)以下代码块内的多个方法均为从上往下补全个别boolean类型的入参,默认为true,如:以下出现的泛型.原创 2021-09-03 13:52:56 · 1453 阅读 · 2 评论 -
Mybatis 有则更新,无则插入代码案例
想插入数据库一条记录,如果这条记录的主键已存在,则更新这条记录,如果主键不存在,则新增这条记录。用Mybatis实现,使用ON DUPLICATE KEY UPDATE<insert id="insertUser" keyProperty="id" keyColumn="id" parameterType="com.javaedge.entity.User"> insert INTO t_user(openId, name, gender, phoneNum原创 2021-03-30 15:43:00 · 2127 阅读 · 0 评论 -
MySQL 批量插入和删除
需要考虑一次批量的条数多少呢?即 sql 里?的数量限制。原创 2021-03-12 13:40:23 · 1149 阅读 · 0 评论 -
mybatis报错:Type handler was null on parameter mapping or property ‘__frch_xxx_0’
Type handler was null on parameter mapping or property ‘__frch_xxx_0’可知是mapper.xml写错,因为使用foreach语句时,两个foreach标签中间的参数写错了<select id=" get" parameterType="entity" resultMap="java.util.List"> select id, name from t where id in <foreach col原创 2021-03-12 09:48:03 · 4630 阅读 · 0 评论 -
MyBatis插入数据后返回主键id
最近开发全栈项目时,前端有个数据行可以被随便修改,所以必须给他一个标识记录该数据行,即向MySQL数据库中插入一条记录后,需要获取此条记录的主键id值返回给前端。原代码 <insert id="insertArticle" parameterType="Article">insert into article(title,create_date,content,name)values(#{articleTitle},#{articleCreateDate},#{articleConten原创 2021-03-03 10:43:03 · 1344 阅读 · 0 评论 -
MyBatis缓存机制的设计
1 数据缓存设计结构1.1 一级缓存Session会话级别的缓存,位于表示一次数据库会话的SqlSession对象之中,即本地缓存。一级缓存是MyBatis内部实现的一个特性,用户不能配置,默认自动支持,用户无定制权利。1.2 二级缓存Application应用级别的缓存,生命周期长,跟Application的生命周期一样,即作用范围为整个Application应用。缓存架构2 工作机制2.1 一级缓存的工作机制一级缓存是Session级别,一般一个SqlSession对象会使用一原创 2021-02-03 19:54:17 · 1133 阅读 · 0 评论 -
Java框架MyBatis三剑客之mybatis-plugin安装与作用详解
该插件主要是在mapper接口方法和mapper XML文件之间来回切换非常方便,极大的提高了开发效率我们知道,mapper 接口一般会定义很多数据层从操作 API,如果没有映射,一个个去 xml 文件中寻找对应 sql 语句,无异于大海捞针,效率奇低!赶紧让我们把三剑客之一用起来!在IDEA中搜索free Mybatis Plugin1、寻找 plugin2、搜索如下:3、搜索到之后安...原创 2020-01-28 20:16:58 · 3172 阅读 · 0 评论 -
Java框架-MyBatis三剑客之MyBatis Generator(mybatis-generator MBG插件)详解
首先确保自动生成文件的配置信息直接在 IDEA 中操作 gradle 的命令生成成功可多次执行,类会覆盖,但是设计 mapper 的 xml 文件会重复生成原创 2020-01-28 05:41:57 · 2676 阅读 · 0 评论 -
Java最强持久层框架MyBatis-Generator-用法详解
MBG全部指代MyBatis GeneratorMyBatis Generator 1.3.4 扩展,可以设置 Mapper(Dao)后缀运行MyBatis Generator有4种运行MBG的方法,具体请看文档 运行 MyBatis GeneratorMBG下载地址:http://repo1.maven.org/maven2/org/mybatis/generator/my...原创 2020-01-26 19:13:31 · 2992 阅读 · 0 评论 -
Java持久层框架MyBatis全注解详解
org.apache.ibatis.annotations包下有着 mybatis 所有的注解,让我们一文打尽!1 @MapperMyBatis映射器的标记接口从mybatis3.4.0开始加入了@Mapper注解,目的就是为了不再写mapper映射文件但是源码中并没有对于这个注解的详细解释添加了@Mapper注解之后这个接口在编译时会生成相应的实现类需要注意的是:这个接口中不...原创 2020-01-25 17:08:55 · 7992 阅读 · 4 评论 -
mybatis增删改查代码案例
声明:使用mybatis,本身不需要再写dao的实现类,此处为了保持三层架构的完整性,遂添加了接口dao的实现类1.增加sql语句–>有默认返回类型,一般是int(表示影响行数的意思) <!-- 新增班级 --><insert id="addClass" parameterType="Clazz"> <!-- 使用序列 --> <selectKey keyProperty="ci原创 2017-04-23 15:39:21 · 1279 阅读 · 0 评论 -
mybatis 中的 updateByPrimaryKey 与 updateByPrimaryKeySelective 的原理与区别实战详解
在abator中可生成iBatis的代码。其中,Sql_map中带有的两个函数是:updateByPrimaryKeySelective 只是更新新的model中不为空的字段updateByPrimaryKey 将为空的字段在数据库中置为NULL例如 若DAO中使用的是 updateByPrimaryKeySelective,则按照不为空的值去更新。 如果使用updat...原创 2018-04-24 15:50:08 · 5655 阅读 · 0 评论