mybatis
晓_晨
共同学习,共同成长!!
展开
-
mybatis注解使用
这篇主要介绍在项目中,mybaits经常用到的注解,大部分在项目中都用过了。mybatis映射sql语句问题。可以通过配置xml来添加映射,也可以在接口上面直接用注解来映射,如 @Select( “SQL语句”) 其他还有@Update,@Delete,@Insert等。动态生成sql语句可以用@*Provider(),*为各种方法(select……)。 值得一提的是,以@SelectProvid原创 2017-11-30 19:00:56 · 2521 阅读 · 1 评论 -
Mybatis源码分析之(七)Mybatis一级缓存和二级缓存的实现
缓存真的是老生常谈的一个话题拉。因为它在我们的开发过程中真的是无处不在。今天LZ带大家来看一下。Mybatis是怎么实现一级缓存和二级缓存的。一级缓存存在BaseExecutor中,是全局的缓存,每次查询后将值存入BaseExecutor的localCache中。key是由ms,parameter,rowBounds和boundSql一起生成的一个值。value就是查询出来的结果。一旦...原创 2018-06-07 22:46:51 · 1914 阅读 · 0 评论 -
Mybatis源码分析之(六)mybatis拦截器(Interceptor)的实现原理
前言InterceptorChain保存所有的Interceptor创建四大对象都走ConfigurationInterceptorChain增强对象方法Plugin封装动态代理,让你使用Mybatis拦截器更简单Invocation,让我们能在拦截器中使用动态代理类中的invoke方法中的对象调用时序图小结前言mybatis拦截器是一个非常有用...原创 2018-05-28 16:53:30 · 3493 阅读 · 0 评论 -
Mybatis源码分析之(五)mapper如何将数据库数据转换成java对象的
下面的代码是PreparedStatementHandler中的 @Override public <E> Cursor<E> queryCursor(Statement statement) throws SQLException { PreparedStatement ps = (PreparedStatement) statement; ...原创 2018-05-23 18:39:52 · 6220 阅读 · 0 评论 -
Mybatis源码分析之(二)根据配置文件创建SqlSessionFactory(Configuration的创建过程)
SqlSessionFactoryBuilder().build创建SqlSessionFactory(粗略走一步流程)build是如何通过xml文件来生成Configuration的(比较详细的分析流程)小结SqlSessionFactoryBuilder().build创建SqlSessionFactory(粗略走一步流程)看完上篇文章后,你对myba...原创 2018-05-08 00:07:47 · 5123 阅读 · 9 评论 -
Mybatis源码分析之(四)mapper访问数据库的底层原理(代理方法中具体访问数据库的细节)
从之前的文章,我们知道了其实mapper真正执行的方法就下面的最后两行 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (Object.class.equals(method.getDeclaringClass())) { ...原创 2018-05-19 22:38:30 · 977 阅读 · 0 评论 -
Mybatis源码分析之(三)mapper接口底层原理(为什么不用写方法体就能访问到数据库)
上一篇的时候,我们的SqlSessionFactoryBuilder已经从xml文件中解析出了Configuration并且返回了sessionFactory。然后我们要从sessionFactory.openSession();中拿到sqlSessionpublic class DefaultSqlSessionFactory implements SqlSessionFactor...原创 2018-05-13 22:03:40 · 3900 阅读 · 0 评论 -
Mybatis源码分析之(一)搭建一个mybatis框架(写一个mybatis的Demo)
数据库工作:JAVA工作:demo项目地址:首先,LZ为了照顾一些基础薄弱的同学,所以先带萌新搭一个mybatis的demo,这个在看源码的时候能起到了很大的作用,因为在看源码的时候,会恍然大悟,为什么要这么配置,为什么要这么写。(老鸟可以跳过这篇)数据库工作:首先准备工作,安装mysql,并且新建一张t_demo表CREATE TABLE `t_de...原创 2018-05-04 17:15:38 · 1163 阅读 · 3 评论 -
Mybatis源码分析开篇
Mybatis的由来mybatis究竟是什么学习源码必备的技能在分析源码之前,LZ想带大家了解下MybatisMybatis的由来iBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Githu...原创 2018-05-03 22:52:59 · 603 阅读 · 0 评论 -
Mybatis源码分析之(八)Mybatis事务管理机制
JdbcTransactionManagedTransaction事务指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行。对于数据库操作来说是必不可少的。在Mybatis框架中有二种事务实现,一种是JdbcTransaction,另一种是ManagedTransaction。他们的配置都是通过environment中的transactionM...原创 2018-06-18 23:36:47 · 291 阅读 · 0 评论