关闭

Mybatis源码解析 KeyGenerator

KeyGenerator接口定义了2个函数: //执行insert之前 void processBefore(Executor executor, MappedStatement ms, Statement stmt, Object parameter); //执行insert之后 void processAfter(Executor executor, MappedStatement ms,...
阅读(57) 评论(0)

Mybatis3.3.x技术内幕(十五):Mybatis之foreach批量insert,返回主键id列表(修复Mybatis返回null的bug)

https://my.oschina.net/zudajun/blog/674946 官方已经修复了 https://github.com/mybatis/mybatis-3/pull/547 摘要: Mybatis在执行批量插入时,如果使用的是for循环逐一插入,那么可以正确返回主键id。如果使用动态sql的foreach循环,那么返回的主键id列表,可能为null,这...
阅读(68) 评论(0)

spring-mybatis 之SqlSessionFactoryBean

http://blog.csdn.net/liuxiao723846/article/details/52424802 在 MyBatis 中,使用 SqlSessionFactoryBuilder创建SqlSessionFactory ,进而来创建 SqlSession。一旦你获得一个 session 之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要它的时...
阅读(59) 评论(0)

【MyBatis学习14】MyBatis和Spring整合

前面十几篇博文总结了mybatis在开发中的相关技术,但在实际中都是和spring整合开发的,所以这里总结一下mybatis和spring的整合方法,并在整合后进行测试。 1. 整合的环境   这都是老掉牙的问题了,不管是开发还是整合,首先环境肯定得有,环境嘛,除了Java环境和开发环境外,那就是jar包咯,关于mybatis和spring整合的jar包,我已经上传到下载频道了==>传...
阅读(77) 评论(0)

MyBatis 二级缓存cache官方解释

Mybatis 官方文档 http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#cache 缓存 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。 默认情况下是没有开启缓存的,除了局部的 sessi...
阅读(58) 评论(0)

MyBatis 实践 -配置

Configuration mybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下: properties : 属性(文件)加载/配置settings : 全局配置参数typeAliases : 定义类型别名typeHandlers : 类型处理器objectFactory : 对象工厂plugins : 插件environ...
阅读(84) 评论(0)

Mybatis Cache探究

这里先不讨论第三方的cache集成(有memcache/oscache集成,控制力度跟下面说的一样比较粗,也可以跟spring3的cache做集成, spring3的cache是基于方法的缓存,具体可以在github找一下spring MyBatis Memcached Bootstrap)。   先使用最简单的配置cache,比较粗放:   一,官方手册 htt...
阅读(69) 评论(0)

【MyBatis学习13】MyBatis中的二级缓存

http://blog.csdn.net/eson_15/article/details/51669608 1. 二级缓存的原理   前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的。为了更加清楚的描述二级缓存,先来看一个示意图:      从图中...
阅读(47) 评论(0)

【MyBatis学习12】MyBatis中的一级缓存

http://blog.csdn.net/eson_15/article/details/51669021 缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图:      从图中可以看出: 一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数...
阅读(37) 评论(0)

【MyBatis学习11】MyBatis中的延迟加载

1. 什么是延迟加载   举个例子:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 所以延迟加载即先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。    我们来对比一下: 关联查询:SELECT orders.*, user.us...
阅读(37) 评论(0)

【MyBatis学习10】高级映射之多对多查询

本文来总结一下mybatis中的多对多映射,从第8节的文章中可以看出,用户表和商品表示多对多关系,它们两的多对多是通过订单项和订单明细这两张表所关联起来的,那么这一节主要来总结一下用户表和商品表之间的多对多映射。    首先在上一节的基础上继续写sql, SELECT orders.*, user.`username`, user.`sex`, user.`address`,...
阅读(49) 评论(0)

【MyBatis学习09】高级映射之一对多查询

上一篇博文总结了一下一对一的映射,本文主要总结一下一对多的映射,从上一篇文章中的映射关系图中可知,订单项和订单明细是一对多的关系,所以本文主要来查询订单表,然后关联订单明细表,这样就有一对多的问题出来了。    首先还是先写sql语句,在写sql语句的时候遵循两点: 查询的主表是哪个? 订单表查询的关联表是哪个? 订单明细表   明确了主表和关联表,下面就可以写sql了,我们...
阅读(54) 评论(0)

【MyBatis学习08】高级映射之一对一查询

从这一篇博文开始,将总结一下mybatis中的几个高级映射,即一对一、一对多、多对多查询,这篇先总结一下mybatis中的一对一查询。    为了模拟这些需求,事先要建立几个表,不同的表之间将对应上面提到的不同的映射,为此,我建立4个表,如下: DROP TABLE IF EXISTS `items`; DROP TABLE IF EXISTS `orders`; DROP TABLE IF ...
阅读(61) 评论(0)

MyBatis学习07】动态sql

1. 动态sql   动态sql是mybatis中的一个核心,什么是动态sql?动态sql即对sql语句进行灵活操作,通过表达式进行判断,对sql进行灵活拼接、组装。就拿上一篇博文中对用户的综合查询一例来说: select * from user where user.sex = #{user.sex} and user.username like '%${user.username}%'...
阅读(62) 评论(0)

【MyBatis学习04】mapper代理方法开发dao

上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的步骤。    使用mapper代理的方法来开发dao时,程序员只需要干两件事即可: 需要编写mapper.xml映射文件需要编写mapper接口(相当于dao接口)   从做的工...
阅读(70) 评论(0)
18条 共2页1 2 下一页 尾页
    个人资料
    • 访问:6996237次
    • 积分:61371
    • 等级:
    • 排名:第34名
    • 原创:250篇
    • 转载:2617篇
    • 译文:3篇
    • 评论:663条
    文章分类
    最新评论