MyBatis随笔】的更多相关文章

在上一篇文章我们已经得到了DefaultSqlSessionFactory @Override public SqlSession openSession() { return openSessionFromDataSource(configuration.getDefaultExecutorType(), null, false); } 在configuration内部默认指定了protected ExecutorType defaultExecutorType = ExecutorType.…
SqlSessionFactoryBuilder是构建sqlSessionFactory的入口类 从该类的方法可知,它是通过不同的入参来构造SqlSessionFactory,除了最后一个configuration入参方法外,其余方法最终都调用如下方法 public SqlSessionFactory build(InputStream inputStream, String environment, Properties properties) { try { XMLConfigBuilder…
前一阵参与了一个项目的搭建,为了快速开发再加上学一些新东西,准备采用React+Spring MVC+MyBatis的架构. 花了一些时间最终把Spring MVC+MyBatis打通. 这里总结下MyBatis的使用过程,方便以后查阅. 参考资料: 1. http://www.mybatis.org/mybatis-3/zh/ 2. http://blog.csdn.net/isea533/article/category/2092001 不玩儿虚的,直接上! 环境:Intellij IDEA…
在上一篇文章我们已经得到了DefaultSqlSession,接下来我们对sqlSession.getMapper(DemoMapper.class)这种语句进行分析 @Override public <T> T getMapper(Class<T> type) { return configuration.<T>getMapper(type, this); } 在这里又调用了如下方法 public <T> T getMapper(Class<T>…
在上一篇文章我们已经得到了mapper的代理对象,接下来我们对demoMapper.getDemo(1)这种语句进行分析.由于返回的mapper是个代理对象,因此会进入invoke方法,接下来我们来看看MapperProxy的invoke方法. @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if (Object.class.equals(method.ge…
在上一篇文章我们分析到了mapper接口方法的实现实际上是交由代理类来实现的,并最终调用Executor来查询,接下来我们对executor.query(ms, wrapCollection(parameter), rowBounds, Executor.NO_RESULT_HANDLER)这个方法进行分析. @Override public <E> List<E> query(MappedStatement ms, Object parameterObject, RowBound…
Mapper.xml头文件 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> Mybatis配置头文件 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://…
在MyBatis - 随笔分类 - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中有关于Mybatis中Cache技术实现及应用介绍.Cache技术实现都是implements Cache接口,这个接口由JSR-107提供.实际上除了Mybatis,Spring也提供了对JSR-107的支持. 首先简单介绍JSR-107相关内容:Java Caching(JSR-107)定义了5个核心接口,分别是CachingProvider.CacheManager.Cache.Entry和Exp…
先大概介绍一下主从数据库是什么?其实就是两个或N个数据库,一个或几个主负责写(当然也可以读),另一个或几个从只负责读.从数据库要记录主数据库的具体url以及BigLOG(二进制日志文件)的参数.原理就是在定时的从主数据库的BigLOG文件中获取相应的日志记录,并转换成相应的sql语句进行同步. SpringBoot整合Mybatis怎么自动化的区分主从数据库进行读写,并且保证其线程安全性;创建一个DataBaseContextHolder类,在类里定义一个成员变量ThreadLocal(一个可以…
这章我们将通过springboot整合mybatis来操作数据库 以下内容分为两部分,一部分主要介绍generator自动生成代码,生成model.dao层接口.dao接口对应的sql配置文件 第一部分: 1.修改的pom.xml,最终pom如下,添加了自动生成代码generator插件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.o…