
mybatis
文章平均质量分 90
氵奄不死的鱼
日拱一卒,功不唐捐
展开
-
使用lombok注解导致mybatis-plus TypeHandler失效
建立实体其中一个字段为枚举类希望数据库存的时对应的数字为了和数据库进行转换,使用了typeHandler测试发现我们知道,在不开启autoResultMap时,会导致TableField对于查询返回的结果不生效。(对于更新无影响)因此首先检查在实体类注解上(mybatisPlus会根据我们的实体类的类型,为我们自动注入resultMap,注入的resultMap也会自动推断出需要使用的类型转换器当然我们也可以指定)原创 2023-06-03 10:51:53 · 2002 阅读 · 0 评论 -
Mybatis-Plus批量更新原理
默认batchSize = 1000 进入executeBatch方法在这个方法基本就能看出来了,执行1000次方法后执行一次flushStatements,也就是说理论上是积累了1000个更新sql,才进行一次数据库更新使用的是BatchExcutor进行批量执行的。原创 2023-03-14 10:30:00 · 7490 阅读 · 0 评论 -
MybatisPlus如何完成字段类型转换
对每个字段都有自己的定义都有两个类型 javaType可以不显式写出来,mybatis可以根据指定的实体类推断出来jdbcType 也就是对应到数据库中的字段类型mybatis完成数据库的数据到java实体类型的转换这两个类型是必不可少的。会根据javaType和jdbcType去匹配到对应的处理器完成类型转换原创 2023-03-11 17:12:30 · 9888 阅读 · 0 评论 -
Mybatis Plugin插件
首先mybatisPlugin是针对于mybatis四大组件(Statementhandler、resultsethandler、parameterHandler、executor)做增强操作的。MyBatis 允许你在映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:通过 MyBatis 提供的强大机制,使用插件是非常简单的,只需实现 Interceptor 接口,并指定想要拦截的方法签名即可。以pageHlper拦截器为例。原创 2022-10-31 21:24:07 · 796 阅读 · 0 评论 -
Mybatis 四大核心对象
- ParameterHandler:处理SQL的参数对象- ResultSetHandler:处理SQL的返回结果集- StatementHandler:数据库的处理对象,用于执行SQL语句- Executor:MyBatis的执行器,用于执行增删改查操作原创 2022-10-31 21:22:21 · 1826 阅读 · 0 评论 -
Mybatis MappedStatement
MappedStatement 类是 Mybatis 框架的核心类之一,它存储了一个 sql 对应的所有信息Mybatis 通过解析 XML 和 mapper 接口上的注解,生成 sql 对应的 MappedStatement 实例,并放入 SqlSessionTemplate 中 configuration 类属性中正真执行 mapper 接口中的方法时,会从 configuration 中找到对应的 mappedStatement,然后进行后续的操作原创 2022-10-31 21:18:28 · 2742 阅读 · 0 评论 -
SqlSessionFactory与SqlSession
SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像。2.SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例。3.每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心。原创 2022-10-30 17:11:13 · 1312 阅读 · 0 评论 -
Mybatis KeyGenerator生成主键
这里使用了useGeneratedKeys="true"代表我们希望在插入数据库之后获取生成的主键值,因为是在操作数据库之后获取主键,因此processBefore方法是不需要实现的,因此给出的是空实现,源码如下:原创 2022-10-27 18:10:08 · 1857 阅读 · 0 评论 -
Mybatis查询参数解析与查询结果处理
一般会写一个parameterType和jdbcType那么这个parameterType起什么作用? 那么看这个insert过程来研究原创 2022-10-25 13:19:11 · 1863 阅读 · 0 评论 -
JDBC常用API
DriverManager工厂中有个方法:getDriver(String URL),通过这个方法可以得到驱动程序对象,这个方法是在各个数据库厂商按JDBC规范设计的数据库驱动程序包里的类中静态实现的,也就是在静态块中Connection:这个接口可以制向一个数据库连接对象,那么如何得到这个连接对象呢?是通过DriverManager工厂中的getConnection(String URL)方法得到的Statement:用于执行静态的SQL语句的接口,通过Connection中的createState原创 2022-10-23 15:20:25 · 456 阅读 · 0 评论 -
Mybatis执行流程
MyBatis 四大核心对象ParameterHandler:处理SQL的参数对象ResultSetHandler:处理SQL的返回结果集StatementHandler:数据库的处理对象,用于执行SQL语句Executor:MyBatis的执行器,用于执行增删改查操作后面我们会一步一步看到着四大对象生成查询代理类继续上篇说到的MapperFactoryBean在获取bean时 org.springframework.beans.factory.support.AbstractBeanF原创 2022-04-06 21:40:13 · 512 阅读 · 0 评论 -
Mybatis启动过程
前置知识,需要了解springBoot自动装配的原理,和bean加载的过程,如不清楚,请看springBoot启动过程二。或者查看其他资料MybatisAutoConfiguration 注解@org.springframework.context.annotation.Configuration@ConditionalOnClass({ SqlSessionFactory.class, SqlSessionFactoryBean.class })@ConditionalOnSingleCandi原创 2022-03-20 17:49:12 · 719 阅读 · 0 评论