Mybatis & ORM
文章平均质量分 94
Mybatis & ORM
zzhongcy
因为站在了巨人的肩上,所以我看得更远。
当你发现自己的才华撑不起野心时,就请安静下来学习吧
展开
-
Mybatis 批量插入数据 SQL
上面代码中在 SQL 语句的最外层使用了 for 循环,好处是将 List 类型的集合传递来写入数据时可以有的是新增有的是修改,例如3行数据,第一三行由于主键字段对应属性 sid 被设置为 NULL ,会向数据库中新增行,第二行数据设置了 sid ,并且该值在数据库中有对应行,那么会修改数据库中的该行上的数据。通过在 java 中测试,发现上面的语句新增一行成功后会返回1,修改成功后会返回2(这里有疑惑,如果清楚原因的麻烦跟帖科普下)。这种写法适合插入数据的项不变,原创 2024-02-02 11:11:45 · 1617 阅读 · 0 评论 -
mybatis&Mysql分页查询,以及SQL_CALC_FOUND_ROWS与count(*) 性能对比
温故而知新,这里记录一下。原创 2024-01-11 17:48:18 · 1287 阅读 · 0 评论 -
springboot+mybatis, SqlSessionTemplate线程安全
springboot+mybatis, SqlSessionTemplate线程安全原创 2022-06-01 09:17:29 · 3579 阅读 · 3 评论 -
Mybatis运行常见错误汇总
1. 找不到类中的 get 属性 1 org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userName' in 'class com.q18idc.Xxxx' 检查取值表达式中的属性名是否写错了,例如:{转载 2022-03-29 15:15:56 · 3239 阅读 · 0 评论 -
Mybatis动态SQL与分页
Mybatis动态SQL与分页Mybatis动态SQL1. if<select id="selectUserByUsernameAndSex" resultType="user" parameterType="com.ys.po.User"> select * from user where <if test="username != null"> username=#{username} </if> <if t.转载 2020-12-09 17:46:24 · 452 阅读 · 0 评论 -
ORM中的N+1问题
ORM能够让事情变得简单,也会让有些事情变得复杂。有人说,这不就是一个SQL语句的事嘛,干嘛在ORM里面就这么复杂。一、什么是N+1问题我们来解释什么是N+1的问题,在所有的ORM中,这都会是一个问题,新手很容易踩到坑。进而导致系统变慢,然后拖垮整个系统。还是拿代码来说事,上篇我们定义了一个User的模型,这次还继续沿用,然后增加一个Post(文章)的模型。User和Post是一对多的...原创 2020-04-03 16:57:47 · 1319 阅读 · 0 评论 -
ORM优缺点详解,已经JOOQ、MyBatis介绍
最近详细了解了一下ORM,这里记录一下。当下我们使用的ORM("对象-关系 映射"(Object Relational Mapping))框架中,JPA/Hibernate/Mybatis占了半边天,它们都有各自的优势和使用场景。最近发现了一个之前从来没用的ORM框架jOOQ,非常有意思,为数据处理提供了一种全新的方式一、ORM1.1、ORM概述面向对象编程和关系型数据...原创 2020-04-03 15:32:29 · 6327 阅读 · 1 评论 -
mybatis foreach Collection的List、Array、Map
mybatis的foreach官方文档解释:对一个集合进行遍历,通常是在构建IN条件语句的时候使用。例如<select id="selectPostIn" resultType="domain.blog.Post"> SELECT * FROM POST P WHERE ID in <foreach item="item" index="index" coll...转载 2019-10-21 10:50:44 · 6465 阅读 · 0 评论 -
mybatis详解,mybatis一级二级缓存机制,以及Ehcache & Redis对比
最近项目需要研究mybatis,网上查了一下资料,这里记录一下一、一二级缓存mybaits提供一级缓存,和二级缓存。二、二级缓存分布式实现 mybatis中默认自带的二级缓存实现(PerpetualCache)是无法做到分布式的。 Java提供了一个开源的分布式缓存EhCache。它是一个纯Java的开源分布式缓存(进程内缓存),具有快速、精干等特...原创 2019-08-12 16:55:04 · 1775 阅读 · 1 评论 -
Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
从3.1开始,Spring引入了对Cache的支持。其使用方法和原理都类似于Spring对事务管理的支持。Spring Cache是作用在方法上的,其核心思想是这样的:当我们在调用一个缓存方法时会把该方法参数和返回结果作为一个键值对存放在缓存中,等到下次利用同样的参数来调用该方法时将不再执行该方法,而是直接从缓存中获取结果进行返回。所以在使用Spring Cache的时候我们要保...转载 2019-08-22 11:11:12 · 3278 阅读 · 2 评论 -
Mybatis分页插件PageHelper的配置和使用
最近项目用到sprint boot +Mybatis,有个分页需求,网上查了查PageHelper的使用,这里记录一下。1. MySQL对分页的支持简单来说MySQL对分页的支持是通过limit子句。请看下面的例子。limit关键字的用法是 LIMIT [offset,] rows offset是相对于首行的偏移量(首行是0),rows是返回条数。# 每页10条记录,取第一...原创 2019-08-14 17:12:28 · 2028 阅读 · 0 评论