随笔分类 - 【框架】MyBatis
摘要:准备工作 public class MainClass { public static void main(String[] args) throws Exception { String resources = "mybatis-config.xml"; InputStream inputStre
阅读全文
摘要:前言 首先我们建立一个SpringBoot工程,导入mybatis-spring-boot-starter依赖。 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-start
阅读全文
摘要:前言 大家使用MyBatis都知道,不管是单独使用还是和Spring集成,我们都是使用接口定义的方式声明数据库的增删改查方法。那么我们只声明一个接口,MyBatis是如何帮我们来实现SQL呢,对吗,我们的sql是定义在/resources/mapper/mybatis下。每个单独的xml文件都有一个
阅读全文
摘要:前言 说起mybatis的一级缓存和二级缓存我特意问了几个身边的朋友他们平时会不会用,结果没有一个人平时业务场景中用。 好吧,那我暂且用来学习源码吧。一级缓存我个人认为也确实有些鸡肋,mybatis默认开启一级缓存,支持在同一个会话(sqlsession)同一个statement执行两次,则第二次会
阅读全文
摘要:前言 使用ORM框架我们更多的是使用其查询功能,那么查询海量数据则又离不开性能,那么这篇中我们就看下mybatis高级应用之延迟加载、一级缓存、二级缓存。使用时需要注意延迟加载必须使用resultMap,resultType不具有延迟加载功能。 一、延迟加载 延迟加载已经是老生常谈的问题,什么最大化
阅读全文
摘要:前言 spring事务管理包含两种情况,编程式事务、声明式事务。而声明式事务又包括基于注解@Transactional和tx+aop的方式。那么本文先分析编程式注解事务和基于注解的声明式事务。 编程式事务管理使用TransactionTemplate或者PlatformTransactionMana
阅读全文
摘要:前言 如果是相对于复杂的SQL逻辑我们肯定是基于存储过程开发,这篇学习下执行存储过程,调用存储过程如果参数较多我们可以创建parameterMap。 搭建开发环境 开发环境和上篇文章保持相同 创建存储过程 存储过程执行一对多的关联查询 修改mapper.xml 单元测试 附单元测试截图
阅读全文
摘要:前言 上篇学习了一对一关联查询,这篇我们学习一对多关联查询。一对多关联查询关键点则依然是配置resultMap,在resultMap中配置collection属性,别忽略了ofType属性。 搭建开发环境 创建表author、表blog,构建一对多的查询场景。 创建author、blog model
阅读全文
摘要:前言 简单来说在mybatis.xml中实现关联查询实在是有些麻烦,正是因为起框架本质是实现orm的半自动化。 那么mybatis实现一对一的关联查询则是使用association属性和resultMap属性。 搭建开发环境 创建student表、teacher表来搭建一对一的关联查询场景,stud
阅读全文
摘要:前言 我们在mapper.xml写sql,如果都是一个参数,则直接配置parameterType,那实际业务开发过程中多个参数如何处理呢? 从MyBatis API中发现selectOne和selectLit方法重载第一个传statement,第二个传Object。那么我们则用Map来传多个参数。
阅读全文
摘要:前言 开博客这是第一次写系列文章,从内心上讲是有点担心自己写不好,写不全,毕竟是作为java/mybatis学习的过程想把学习的路线和遇到的问题都总结下来,也让知识点在脑海里能形成一个体系。 开发环境 idea2016、mybatis3、SQLServer2012 pom.xml、mybatis.x
阅读全文