Mybatis-学习
文章平均质量分 88
OkidoGreen
这个作者很懒,什么都没留下…
展开
-
Mybatis 注解开发
这几年来注解开发越来越流行,Mybatis 也可以使用注解开发方式,这样我们就可以减少编写 Mapper 映射 文件了。本次我们先围绕一些基本的 CRUD 来学习,再学习复杂映射关系及延迟加载。3.1 mybatis 的常用注解说明@Insert:实现新增 @Update:实现更新 @Delete:实现删除 @Select:实现查询 @Result:实现结果集封装 @Resul...转载 2020-01-06 16:48:57 · 571 阅读 · 0 评论 -
MyBatis的注解开发
单表的CRUD注解开发:User实体类:package com.zyb.pojo;import java.io.Serializable;import java.util.Date;public class User implements Serializable {private Integer id;private String username;private St...转载 2020-01-06 17:51:33 · 537 阅读 · 0 评论 -
【MyBatis学习14】MyBatis和Spring整合
前面十几篇博文总结了mybatis在开发中的相关技术,但在实际中都是和spring整合开发的,所以这里总结一下mybatis和spring的整合方法,并在整合后进行测试。1. 整合的环境 这都是老掉牙的问题了,不管是开发还是整合,首先环境肯定得有,环境嘛,除了Java环境和开发环境外,那就是jar包咯,关于mybatis和spring整合的jar包,我已经上传到下载频道了==>传转载 2017-07-28 11:43:25 · 744 阅读 · 0 评论 -
【MyBatis学习05】SqlMapConfig.xml文件中的配置总结
经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置文件中都有哪些可以配置的东西:配置内容作用用来加载属性文件用来设置全局参数用来设置类型的别名转载 2017-07-25 11:27:29 · 1098 阅读 · 0 评论 -
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到Spring
Mybatis MapperScannerConfigurer 自动扫描 将Mapper接口生成代理注入到SpringMybatis在与Spring集成的时候可以配置MapperFactoryBean来生成Mapper接口的代理. 例如bean id="userMapper" class="org.mybatis.spring.mapper.MapperFactoryBean"转载 2017-10-30 18:22:41 · 1259 阅读 · 0 评论 -
配置SqlSessionFactory,整合Mybatis
要利用Mybatis首先是需要导入mybatis-3.3.0.jar,其次,要整合Spring和Mybatis需要导入mybatis-spring-1.2.3.jar。1、Spring整合Mybatis的xml配置常用配置:(如果在mybatis-config.xml利用进行xml映射文件的配置,就可以不用配置下面的mapperLocation属性了)bean id="s转载 2017-10-31 14:17:14 · 5408 阅读 · 2 评论 -
mybatis如何根据mapper接口生成其实现类
http://www.cnblogs.com/ChenLLang/p/5307590.htmlSpringBoot集成mybatismybatis的statement的解析与加载mybatis如何根据mapper接口生成其实现类mybatis的mapper返回map结果集mybatis结果的组装序mybatis里头给sql转载 2017-10-31 14:18:09 · 909 阅读 · 0 评论 -
spring整合mybatis sqlSession释放问题
http://blog.csdn.net/u011686226/article/details/52704158MapperFactoryBeanMapperFactoryBean实现了FactoryBean,所以MapperFactoryBean.getObject -> SqlSessionTemplate.getMapper() -> Conf转载 2017-10-31 14:20:37 · 5634 阅读 · 0 评论 -
MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO
( 本文示例完整源代码与数据库脚本下载地址: http://down.51cto.com/data/1970833 )在 MyBatis 中,当我们编写好访问数据库的映射器接口后, MapperScannerConfigurer 就能自动成批地帮助我们根据这些接口生成 DAO 对象,然后我们再使用 Spring 把这些 DAO 对象注入到业务逻辑层的对象( Service 类的对象)。因此转载 2017-10-31 14:22:12 · 1563 阅读 · 0 评论 -
Spring mybatis源码篇章-sql mapper配置文件绑定mapper class类
http://www.cnblogs.com/question-sky/p/6654101.html背景知识MappedStatement是mybatis操作sql语句的持久层对象,其id由注解模式的${mapperInterface类全名}.${methodName}或者XML模式的${namespace}.${CRUD标签的id}确定,且是唯一的Mybatis对每个转载 2017-10-31 14:29:59 · 1355 阅读 · 0 评论 -
Spring mybatis源码篇章-MybatisDAO文件解析
http://www.cnblogs.com/question-sky/p/6612604.html默认加载mybatis主文件方式XMLConfigBuilder xmlConfigBuilder = null; if (this.configLocation != null) { xmlConfigBuilder = new XMLConfigBui转载 2017-10-31 14:39:33 · 1087 阅读 · 0 评论 -
Mybatis+Spring如何自动将sqlsessonFactory实例注入每个代理mapper中?
看到许多网站和自身的关于mybatis+spring 自动注册所有代理mapper类的文章,配置文件不外乎如下: --> --> 一直有个疑问,当项目中仅存在单个数据源的情况时,为何原创 2017-10-31 10:44:06 · 4620 阅读 · 1 评论 -
MyBatis 一、二级缓存和自定义缓存
https://www.cnblogs.com/moongeek/p/7689683.html 目录导航1、一级缓存 2、二级缓存 3、自定义缓存1、一级缓存 MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到...转载 2018-08-30 14:38:42 · 1157 阅读 · 0 评论 -
MyBatis 二级缓存cache官方解释
Mybatis 官方文档http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#cache缓存MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制。MyBatis 3 中的缓存实现的很多改进都已经实现了,使得它更加强大而且易于配置。默认情况下是没有开启缓存的,除了局部的 sessi原创 2017-07-28 11:38:38 · 1829 阅读 · 0 评论 -
MyBatis 实践 -配置
Configurationmybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下:properties : 属性(文件)加载/配置settings : 全局配置参数typeAliases : 定义类型别名typeHandlers : 类型处理器objectFactory : 对象工厂plugins : 插件environ转载 2017-07-28 11:33:03 · 843 阅读 · 0 评论 -
Mybatis Cache探究
这里先不讨论第三方的cache集成(有memcache/oscache集成,控制力度跟下面说的一样比较粗,也可以跟spring3的cache做集成, spring3的cache是基于方法的缓存,具体可以在github找一下spring MyBatis Memcached Bootstrap)。 先使用最简单的配置cache,比较粗放: 一,官方手册htt转载 2017-07-28 11:25:55 · 1647 阅读 · 0 评论 -
【MyBatis学习02】走进MyBatis的世界
mybatis是个持久层的框架,用来执行数据库操作的,无外乎增删改查,上一节对mybatis有了宏观上的了解后,这一篇博客主要通过一个小示例来入门mybatis,先看一下要写的示例需求:根据用户id查询用户信息 根据用户名称模糊查询用户信息 添加用户、删除用户、更新用户 其实也就是增删改查,掌握这些,基本上就掌握了mybatis的基本操作了,下面一个个模块来完成。转载 2017-07-18 10:38:20 · 710 阅读 · 0 评论 -
【MyBatis学习04】mapper代理方法开发dao
上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的步骤。 使用mapper代理的方法来开发dao时,程序员只需要干两件事即可:需要编写mapper.xml映射文件需要编写mapper接口(相当于dao接口) 从做的工转载 2017-07-25 11:27:51 · 798 阅读 · 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}%'转载 2017-07-25 11:37:18 · 775 阅读 · 0 评论 -
spring-mybatis 之SqlSessionFactoryBean
http://blog.csdn.net/liuxiao723846/article/details/52424802在 MyBatis 中,使用 SqlSessionFactoryBuilder创建SqlSessionFactory ,进而来创建 SqlSession。一旦你获得一个 session 之后,你可以使用它来执行映射语句,提交或回滚连接,最后,当不再需要它的时转载 2017-08-04 15:49:47 · 4120 阅读 · 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,这转载 2017-08-04 15:56:05 · 6175 阅读 · 1 评论 -
Mybatis源码解析 KeyGenerator
KeyGenerator接口定义了2个函数://执行insert之前void processBefore(Executor executor, MappedStatement ms, Statement stmt, Object parameter);//执行insert之后void processAfter(Executor executor, MappedStatement ms,转载 2017-08-04 16:18:26 · 1796 阅读 · 0 评论 -
【MyBatis学习08】高级映射之一对一查询
从这一篇博文开始,将总结一下mybatis中的几个高级映射,即一对一、一对多、多对多查询,这篇先总结一下mybatis中的一对一查询。 为了模拟这些需求,事先要建立几个表,不同的表之间将对应上面提到的不同的映射,为此,我建立4个表,如下:DROP TABLE IF EXISTS `items`;DROP TABLE IF EXISTS `orders`;DROP TABLE IF转载 2017-07-28 10:50:21 · 808 阅读 · 0 评论 -
【MyBatis学习09】高级映射之一对多查询
上一篇博文总结了一下一对一的映射,本文主要总结一下一对多的映射,从上一篇文章中的映射关系图中可知,订单项和订单明细是一对多的关系,所以本文主要来查询订单表,然后关联订单明细表,这样就有一对多的问题出来了。 首先还是先写sql语句,在写sql语句的时候遵循两点:查询的主表是哪个? 订单表查询的关联表是哪个? 订单明细表 明确了主表和关联表,下面就可以写sql了,我们转载 2017-07-28 10:52:06 · 752 阅读 · 0 评论 -
【MyBatis学习10】高级映射之多对多查询
本文来总结一下mybatis中的多对多映射,从第8节的文章中可以看出,用户表和商品表示多对多关系,它们两的多对多是通过订单项和订单明细这两张表所关联起来的,那么这一节主要来总结一下用户表和商品表之间的多对多映射。 首先在上一节的基础上继续写sql,SELECT orders.*, user.`username`, user.`sex`, user.`address`,转载 2017-07-28 10:55:08 · 740 阅读 · 0 评论 -
【MyBatis学习11】MyBatis中的延迟加载
1. 什么是延迟加载 举个例子:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 所以延迟加载即先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 我们来对比一下:关联查询:SELECT orders.*, user.us转载 2017-07-28 11:12:17 · 703 阅读 · 0 评论 -
【MyBatis学习12】MyBatis中的一级缓存
http://blog.csdn.net/eson_15/article/details/51669021 缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图: 从图中可以看出:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMa...转载 2017-07-28 11:14:11 · 781 阅读 · 0 评论 -
【MyBatis学习13】MyBatis中的二级缓存
http://blog.csdn.net/eson_15/article/details/516696081. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的。为了更加清楚的描述二级缓存,先来看一个示意图: 从图中可以看出:sqlSess...转载 2017-07-28 11:23:36 · 806 阅读 · 0 评论 -
【MyBatis学习01】宏观上把握MyBatis框架
今天开始学习mybatis框架,博客主要记录学习过程中的一些总结,如有错误之处,欢迎留言指正~先用mybatis的鸟鸟来镇个楼,咳咳~~ mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。MyBatis可以将向preparedStatemen转载 2017-07-18 10:38:16 · 672 阅读 · 0 评论