![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mybatis
文章平均质量分 69
大唐雨夜
这个作者很懒,什么都没留下…
展开
-
Mybatis核心流程源码分析
Mybatis启动过程// 1. 读取配置文件,读成字节输入流,注意:现在还没解析InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");// 2. 解析配置文件,封装Configuration对象。创建DefaultSqlSessionFactory对象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().b原创 2022-04-01 00:32:57 · 235 阅读 · 0 评论 -
Mybatis层次结构与执行流程
Mybatis功能架构Mybatis的功能架构分为三层:API接⼝层:提供给外部使⽤的接⼝ API,调⽤数据处理层来完成具体的数据处理。MyBatis和数据库的交互有两种⽅式:a. 使⽤传统的MyBatis提供的API ;b. 使⽤Mapper代理的⽅式。数据处理层:负责具体的SQL查找、SQL解析、SQL执⾏和执⾏结果映射处理等,完成一次数据库调用操作。基础⽀撑层:负责最基础的功能⽀撑,包括连接管理、事务管理、配置加载和缓存处理,是基础组件。Mybatis的主要构件与层次结构总体执行流程原创 2022-04-01 00:30:31 · 615 阅读 · 0 评论 -
Mybatis缓存实现原理
Mybatis缓存mybatis提供了对缓存的支持,分为一级缓存和二级缓存,可以通过下图来理解:①、一级缓存是SqlSession级别的缓存,默认开启。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。②、二级缓存是mapper级别的缓存,基于mapper文件的namespace,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。一级缓存⼀级缓存到底是什么?⼀级缓存什么时候被创建原创 2022-03-28 07:45:00 · 1720 阅读 · 0 评论 -
【Error】java.lang.NumberFormatException: For input string
There was an unexpected error (type=Internal Server Error, status=500).nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.NumberFormatException: For input string: "k" ### Cause: java.lang.N原创 2020-08-16 13:25:19 · 3083 阅读 · 0 评论 -
mybatis-generator生成XML有多个resultMap问题
使用下载mybatis-generater-demo项目,配置generatorConfig文件。生成pojo、xml、mapper。成功生成后,将对应文件拷贝到正确项目位置。添加项目依赖<!-- 通用mapper逆向工具 --> <dependency> <groupId>tk.mybatis</groupId> <artifactId>mapper-spring-boot-s原创 2020-06-27 14:01:11 · 2484 阅读 · 2 评论 -
MyBatis resultMap id标签的错误使用
我们在编写VO对象,如果业务场景稍微复杂一点,就会用到集合属性。例如用户查看个人订单列表,每个订单又包含多种或者多个规格的商品。本节的问题主要是笔者对mybatis id标签的错误使用。id是resultMap以及Collection的子标签,标记出作为 ID 的结果可以帮助提高整体性能。特别注意的是,id是当前命名空间中的一个唯一标识,用于标识一个结果映射。如下图,itemId(商品id)字段值在数据库中不唯一,错误使用会导致只返回该订单某商品的一条记录。因为对于某个商品,麻辣味和五香味只是商品规格,原创 2020-10-18 18:38:46 · 2023 阅读 · 1 评论 -
Mybatis 批量插入报ORA-00933: SQL 命令未正确结束
Mybatis 批量插入报ORA-00933: SQL 命令未正确结束错误出现的场景是这样的,将多个月份的1000条数据分别插入到各月份表中。MySQL中,批量插入数据到表,会在一定程度提高效率。insert into table (column1, column2)values(value1, value2), (value1, value2)对于List<Map<String, Object>>类型的参数,使用mybatis实现上面语句需要用到动态SQL–forea原创 2021-08-21 10:08:19 · 6571 阅读 · 0 评论