Mybatis
文章平均质量分 78
rz_0212
这个作者很懒,什么都没留下…
展开
-
mybatis传入参数为0被误认为是空字符串的解决方法
在mbatis中使用Xml配置sql语句时,出现了这样一个问题。当我传入的参数为0去做判断时,mybatis会把参数0当成是空字符串去判断而引起查询结果错误。下面是我之前配置的sql语句: =30 and bcr.overdue_days 90]]> 对于这个问题,有两种解决办法。 1.当传入的参数有0时,只判断!=null即可。 2.将0转化为S原创 2017-09-06 17:11:52 · 8667 阅读 · 3 评论 -
MyBatis源码解析——获取SqlSession
上一篇讲解了SqlSessionFactory的获取过程,那接下来我们就来说一说如何从SqlSessionFactory中拿到SqlSession。还是写一个测试方法,一步步debug,跟踪源码,看看SqlSessionFactory到底做了什么。 首先进入DefaultSqlSessionFactory中,调用它的openSession()方法,openSession()方法有很多重载,我们这...原创 2018-07-23 16:48:52 · 971 阅读 · 0 评论 -
MyBatis源码解析——获取Mapper对象
之前两篇文章,已经讲述了SqlSessionFactory和SqlSession的获取过程,那么今天就一起来看一下SqlSession是如何得到Mapper的,从而执行相应的增删改查方法。这里还是以之前的代码为例,一步步debug的方式,去探究其中的过程。 首先,sqlSession调用getMapper(Class<?> type)方法,参数里传入指定的Class类型,返...原创 2018-07-24 12:26:04 · 4353 阅读 · 0 评论 -
MyBatis源码解析——Mapper代理对象执行增删改查
从上篇,我们知道,mybatis获取的Mapper是一个代理对象,接下来我们就看看它是如何通过这个代理对象来执行增删改查操作的。下面是我的测试代码,还是一步步debug,.我们直接从userMapper.selectUserById(1)开始讲起。 userMapper执行selectUserById(1)方法,接下来便进入MapperProxy.invoke()方法里,这是因为userMa...原创 2018-07-25 16:45:56 · 1011 阅读 · 0 评论 -
MyBatis源码解析——获取SqlSessionFactory
我们都知道,在Mybatis中,对数据库的增删改查,实际上是由SqlSession来操作的,而SqlSession又是从SqlSessionFactory中得到的,那么问题来了,SqlSessonFactory是如何获得的呢?今天我们一起来解读一下Mybatis是如何加载配置文件,从而获取SqlSessionFactory的。 首先,从Resources.getResourceAsReader(...原创 2018-07-20 17:16:14 · 3307 阅读 · 2 评论