
Mybatis
文章平均质量分 94
tony_code_2017
开心就好
展开
-
MyBatis源码学习之一 工作的基本流程
本系列针对MyBatis源码进行学习,将会从基本的流程到各个特性以及源码中涉及的设计模式等。1.MyBatis简介 MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain ...原创 2018-05-25 18:39:56 · 571 阅读 · 0 评论 -
MyBatis 源码学习之二 MyBatis事务
MyBatis事务 本篇主要学习MyBatis的事务代码,从设计模式,代码实现,事务分类等三个方面进行学习。关于数据库事务的特性和隔离级别与传播级别此处不做学习,将会有另外的篇幅进行学习。 事务分类 MyBatis事务分为两个类型,分别是JdbcTransaction和ManagedTransaction。开发过程中主要使用前者,按照type="jdbc" 或者type=...原创 2018-06-14 22:57:44 · 1696 阅读 · 0 评论 -
MyBatis 源码学习之三 MyBatis开发遇过的坑
使用MyBatis过程中遇到过一些坑,遂记录下来,结合源码分析,以共享。配置如下:首先测试了获取sqlsession成功one 新增记录成功,但是数据库中无记录。实体类如下:数据库表如下:执行如下测试方法执行结果:成功。但是查看数据库没有新增的该条记录。原因是没有提交。添加提交代码后新增记录在数据库中可以查看到。源码分析:session = ssf.openSession();创建的SqlSess...原创 2018-06-22 14:46:19 · 323 阅读 · 0 评论 -
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
1.报错信息org.apache.ibatis.session.defaults.DefaultSqlSession@1eb2c43java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at java.net.URLClassLoader$1.run(URLClassLoader.java:369) at java.net.URLC...原创 2018-06-18 13:15:02 · 521 阅读 · 0 评论 -
MyBatis源码学习之四 插件plugin
插件 MyBatis提供了插件功能,也就是拦截器功能,可以让我们在已映射语句执行过程中的某一点进行拦截调用。常用的插件就是ibatis3-spring-support包中的com.ibatis3.dialect.OffsetLimitInterceptor。我们先看看插件的实现然后再学习下OffsetLimitInterceptor。 1 怎么用 1.1 实现Interceptor接...原创 2018-06-25 17:54:26 · 2831 阅读 · 0 评论 -
MyBatis 排序防止sql注入
MyBatis的排序引言 最近在项目开发中遇到一个问题,项目中使用的的MyBatis的排序功能被安全部门扫描出了SQL注入安全隐患,查看安全报告说是有一个接口中存在SQL注入的安全漏洞,检查后发现是因为该接口中的排序功能使用了的MyBatis中的$ {}。#{}与$ {}的区别 默认情况下,使用#{}格式的语法会导致MyBatis的创建的PreparedStatemen...原创 2018-11-13 07:23:59 · 18474 阅读 · 8 评论 -
MyBatis 本地缓存和二级缓存使用以及源码分析 第一篇
本地缓存 也称为一级缓存,分为两个作用域SESSION和STATEMENT。官网中的描述:MyBatis利用本地缓存机制(Local Cache)防止循环引用(循环引用)和加速重复嵌套查询。默认值为SESSION,这种情况下会缓存一个会话中执行的所有查询。若设置值为声明,本地会话仅用于语句执行上,对相同的一个SqlSession的不同调用将不会共享数据。也就是说本地缓存我们不需要配置就是生...原创 2018-11-20 11:19:54 · 1177 阅读 · 0 评论 -
Result Maps collection already contains value for com.*.*.*Mapper.BaseResultMap
问题:在使用MyBatis的过程中,启动项目总是报错误,如下Caused by: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalArgumentException: Result Maps collection already contains valu...原创 2018-11-14 18:44:17 · 1340 阅读 · 0 评论 -
CacheException: Error serializing object. Cause: java.io.NotSerializableException
错误堆栈信息如下: at org.apache.ibatis.cache.decorators.SerializedCache.serialize(SerializedCache.java:102) at org.apache.ibatis.cache.decorators.SerializedCache.putObject(SerializedCache.java:56) at org...原创 2018-11-24 17:40:04 · 4031 阅读 · 0 评论