mybatis
文章平均质量分 79
lnlllnn
这个作者很懒,什么都没留下…
展开
-
Mybatis源码阅读1 --- 让Mybatis运行起来
读源码肯定要debug,先搭好环境。首先把源码下载到本地: https://github.com/mybatis/mybatis-3 可以用git也可以直接下载zip包。下载完后我们需要的是src目录和pom.xml文件,准备完毕 1:创建一个java工程:2:把mybatis源码的org文件(位置:src->main->java)复制到新建工程的main目录下,把my...原创 2018-06-14 23:05:38 · 409 阅读 · 0 评论 -
Mybatis源码阅读8 --- sql语句的一切(1)
前几篇主要从外表看mybatis,这次就要拿起手术刀,一点一点细细看。本篇主要把所有sql语句的写法、解析、执行过程进行分析,篇幅会略长,主要有个方面内容:crud及动态sql的使用,sql解析及执行,之前的专题中若和内容核心内容相关性不大则被mark下,不过从此以后,和核心内容无关的也会深入研究下。1:CityMapper.xml的sql配置<?xml version="1.0" enco...原创 2018-07-06 00:42:58 · 300 阅读 · 0 评论 -
Mybatis源码阅读8 --- sql语句的一切(2)
继上篇分析了getById,我们继续分析其他sql语句: <select id="getById" resultMap="com.hhg.jerry.dao.CityDao.cityResultMap"> SELECT * FROM city where id = #{id}</select><select id="getByNameAndCoun...原创 2018-07-11 00:17:49 · 220 阅读 · 0 评论 -
Mybatis源码阅读7 --- 适配你的日志
Java日志有很多,log4j,log4j2,comons-logging等,mybatis为不同日志提供了适配,how?1、定义接口Log,日志框架需对应的实现,如log4j的实现类Log4jImpl2、定义LogFactory作为获取日志的入口LogFactory静态代码块会初始化一个可用的Log实现类:还有一个静态方法userCustomLoggingpublic static synchr...原创 2018-06-18 22:58:36 · 204 阅读 · 0 评论 -
Mybatis源码阅读6 --- 数据库连接池
mybatis自带数据库连接池功能,当然也支持使用c3p0,druid等,在配置Environment-dataSource-type时,可以配置POOLED和UNPOOLED,分别对应PooledDataSourceFactory和UnPooledDataSourceFactory,前者继承后者,只是构造函数中设置dataSource为PooledDataSource,UnPooledDataS...原创 2018-06-18 16:44:50 · 169 阅读 · 0 评论 -
Mybatis源码阅读5 --- Environment,我来决定数据库
在mybatis配置文件我们配置了Environment,切换Environment只需修改Environments的中default属性即可,Environment又有transactionManager、dataSource,没错这两就是Environment的一切。Environment的配置: <environments default="development"> ...原创 2018-06-18 09:09:03 · 212 阅读 · 0 评论 -
Mybatis源码阅读4 --- 只写接口就能调用?MapperProxy
City city = sqlSession.selectOne("com.hhg.jerry.dao.CityDao.getById",1L);Mybatis通过Session执行sql操作,参数为statement(mapper的namespace+select的id)和改statement所需参数,直接用接口调用当然更好:public class App { public stati...原创 2018-06-16 23:13:35 · 339 阅读 · 0 评论 -
Mybatis源码阅读3 --- 缓存的一切
先说结论:mybatis缓存一般不用,(性能、脏数据等原因),但我们也需要了解它(至少知道如何关闭它),并从中学习一些缓存的设计。再说概念:Mybatis缓存有Session级(一级缓存)和Mapper级(二级缓存),一级缓存不能被Session共享,二级缓存可以。下面详细介绍下Session缓存:配置文件添加settings,并添加如下setting<setting name="local...原创 2018-06-15 17:04:48 · 264 阅读 · 0 评论 -
Mybatis源码阅读2 --- 流程概要分析
mybatis最简单的使用:InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession ...原创 2018-06-15 13:22:28 · 237 阅读 · 0 评论 -
Mybatis源码阅读0 --- 概述
mybatis源码是值得的:1、难易中等,太难的看不懂,太简单的学了白学2、使用率高,ormapping不是hibernate就是mybatis3、学习巩固基础知识,mybatis涉及反射、注解、动态代理及设计模式4、读完源码会提高自信心,原来只是使用mybatis,现在可以深究mybatis是如何编码,如何架构来处理复杂的逻辑和灵活的扩展 mybatis源码学习过程:...原创 2018-06-14 23:34:49 · 209 阅读 · 0 评论 -
Mybatis源码阅读9 --- ResultMap-处理返回值
sql语句无非增删改查,对于返回结果,增删改只需知道成功与否,查询就稍稍复杂,我们来看下mybatis如何处理的。在sql的select必须要定义返回resultType或者resultMap,resultType就是一个class对象(HashMap,自定义Java类如City),若返回类型稍稍复杂些就需要ResultMap了,ResultMap的元素:constructor、id、result...原创 2018-07-24 09:43:42 · 2953 阅读 · 0 评论