
Mybatis
零度anngle
情商不是八面玲珑的圆滑,而是德行具足后的虚心、包容和自信;成熟不是单纯到复杂的世故,而是复杂回归简单的超然;觉悟不是对世事的无所谓,而是对无能为力之事的坦然接受;成功不是追求别人眼中的最好,而是把自己能做的事情做得最好。热爱生活,热爱编程,热爱Java,喜欢探索,纸上得来终觉浅,绝知此事要躬行,愿与你一起在技术的海洋中成长!
博客:http://blog.csdn.net/zmx729618
展开
-
MyBatis一对多和多对一
在学习MyBatis3的过程中,文档上面一直在强调一个id的东西!在做这个实验的时候,也因为没有理解清楚id含义而导致一对多的“多”中也只有一条数据。id和result的唯一不同是id表示的结果将是当比较对象实例时用到的标识属性。这帮助来改进整体表现,特别是缓存和嵌入结果映射。所以不同数据的id应该唯一区别,不然导致数据结果集只有一条数据。一、表二、实体1.person转载 2016-07-13 16:28:01 · 629 阅读 · 0 评论 -
MyBatis高级映射之多对多查询
本文来总结一下mybatis中的多对多映射,从第8节的文章中可以看出,用户表和商品表示多对多关系,它们两的多对多是通过订单项和订单明细这两张表所关联起来的,那么这一节主要来总结一下用户表和商品表之间的多对多映射。 首先在上一节的基础上继续写sql:SELECT orders.*, user.`username`, user.`sex`, user.`address`,转载 2017-09-14 11:48:03 · 432 阅读 · 0 评论 -
Mybatis传递多个参数的解决办法(三种)
第一种方案DAO层的函数方法[java] view plain copy print?Public User selectUser(String name,String area); Public User selectUser(String name,String area);对应的Mapper.xml[java]转载 2017-09-07 13:37:48 · 1210 阅读 · 0 评论 -
MyBatis之延迟加载
1. 什么是延迟加载 举个例子:如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求,当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 所以延迟加载即先从单表查询、需要时再从关联表去关联查询,大大提高数据库性能,因为查询单表要比关联查询多张表速度要快。 我们来对比一下: 关联查询:SELECT o转载 2017-09-15 11:19:47 · 363 阅读 · 0 评论 -
MyBatis缓存策略之一级缓存
缓存的作用是减轻数据库的压力,提高数据库的性能的。mybatis中提供了一级缓存和二级缓存,先来看一下两个缓存的示意图: 从图中可以看出:一级缓存是SqlSession级别的缓存。在操作数据库时需要构造sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)是互相不影响的。二级缓存是转载 2017-09-15 15:04:12 · 506 阅读 · 0 评论 -
MyBatis缓存策略之二级缓存
1. 二级缓存的原理 前面介绍了,mybatis中的二级缓存是mapper级别的缓存,值得注意的是,不同的mapper通常情况下有不同的namespace,就都有一个二级缓存,也就是说,不同的mapper之间的二级缓存是互不影响的。为了更加清楚的描述二级缓存,先来看一个示意图: 从图中可以看出:sqlSession1去查询用户id为1的用户信息,查询到用户信息会转载 2017-09-15 15:35:15 · 20487 阅读 · 5 评论 -
MyBatis之配置实践
Configurationmybatis-configuration.xml是MyBatis的全局配置文件(文件名任意),其配置内容和顺序如下:properties : 属性(文件)加载/配置settings : 全局配置参数typeAliases : 定义类型别名typeHandlers : 类型处理器objectFactory : 对象工厂plugins : 插件environ转载 2017-09-18 09:53:38 · 577 阅读 · 0 评论 -
MyBatis之整合Spring(Dao和Mapper两种方式)
1. 基础环境搭建 首先环境肯定得有,环境嘛,除了Java环境和开发环境外,那就是jar包咯,关于mybatis和spring整合的jar包,我已经上传到下载频道了==>传送门 将这些jar包导入到lib文件夹中即可,然后就是工程中的一些文件了,配置文件啊,java文件啊等,先看一下整个工程的结构。 下面来完成所有的整合步骤。 2. 配置文件 在转载 2017-09-18 17:34:22 · 7955 阅读 · 4 评论 -
MyBatis中resultType和resultMap的区别
MyBatis中在查询进行select映射的时候,返回类型可以用resultType,也可以用resultMap,resultType是直接表示返回类型的(对应着我们的model对象中的实体),而resultMap则是对外部ResultMap的引用(提前定义了db和model之间的隐射key-->value关系),但是resultType跟resultMap不能同时存在。 在MyB转载 2017-09-11 09:31:08 · 7975 阅读 · 1 评论 -
MyBatis高级映射之一对多查询
上一篇博文总结了一下一对一的映射,本文主要总结一下一对多的映射,从上一篇文章中的映射关系图中可知,订单项和订单明细是一对多的关系,所以本文主要来查询订单表,然后关联订单明细表,这样就有一对多的问题出来了。 首先还是先写sql语句,在写sql语句的时候遵循两点: 1、查询的主表是哪个? 订单表 2、查询的关联表是哪个? 订单明细表转载 2017-09-14 11:40:18 · 371 阅读 · 0 评论 -
MyBatis高级映射之一对一查询
从这一篇博文开始,将总结一下mybatis中的几个高级映射,即一对一、一对多、多对多查询,这篇先总结一下mybatis中的一对一查询。 为了模拟这些需求,事先要建立几个表,不同的表之间将对应上面提到的不同的映射,为此,我建立4个表,如下:DROP TABLE IF EXISTS `items`;DROP TABLE IF EXISTS `orders`;DROP TABLE IF转载 2017-09-14 11:15:21 · 515 阅读 · 0 评论 -
SpringMVC+Spring+Mybatis整合配置
1、Maven依赖文件:pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach原创 2016-07-13 11:18:57 · 3016 阅读 · 0 评论 -
Spring整合Mybatis关键配置详解
根据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对Mybatis3的支持。因此由Mybatis社区自己开发了一个Mybatis-Spring用来满足Mybatis用户整合Spring的需求。下面就将通过Mybatis-Spring来整合Mybatis跟Spring的用法做一个简单的介绍。MapperFactor转载 2016-07-14 11:04:58 · 7500 阅读 · 2 评论 -
Spring整合MyBatis错误:org.apache.ibatis.binding.BindingException
MyBatis Mapper使用Spring注入: applicationContext.xml: 使用上面方式注入时需要注意下面问题: - interface = com.zmx.ssm.user.mapper.UserMapper.class - mapper原创 2016-07-14 15:27:25 · 28198 阅读 · 2 评论 -
maven之远程部署到Tomcat
1、设置Tomcat用户角色,使该用户支持页面部署应用,修改tomcat-user.xml 2、在maven的配置文件setting.xml中增加server mytomcat7 admin admin3、pom.xmltomcat7:原创 2016-07-14 16:36:29 · 1171 阅读 · 0 评论 -
使用Log4j2打印Mybatis SQL语句以及结果集
配置log4j2.xml实现用Log4j2来打印Mybatis的SQL很简单,先配置一个name为consolePrint的附加器,指定输出格式 然后在loggers下配置一个logger,name指向项目持久层接口的package,也就是和Mybatis配置文件对应的接口包,再定义输出方式就可以了[html] view plain copy print?转载 2017-01-19 14:44:52 · 4874 阅读 · 1 评论 -
Spring多数据源分布式事务管理/springmvc+spring+atomikos[jta]+druid+mybatis
项目进行读写分离及分库分表,在一个业务中,在一个事务中处理时候将切换多个数据源,需要保证同一事务多个数据源数据的一致性。 此处使用atomikos来实现(附源码)。另外需要注意以下: 1:spring3.0之后不再支持jtom[jta]了,支持第三方开源软件atomikos(http://www.atomikos.com/)来实现. 2:org.转载 2017-01-11 16:06:50 · 6281 阅读 · 6 评论 -
MyBatis入门教程
一、简介 mybatis框架是一个持久层框架,是Apache下的顶级项目。mybatis可以让开发者的主要精力放在sql上,通过mybatis提供的映射方式,自由灵活的生成满足需要的sql语句。MyBatis可以将向preparedStatement中的输入参数自动进行输入映射,将查询结果集灵活映射成java对象(输出映射)。 下面在整体上把握一下mybatis框架,总结转载 2017-08-17 09:40:47 · 575 阅读 · 0 评论 -
mybatis的嵌套查询和延迟加载分析
本文我们研究mybatis的嵌套查询和延迟加载。 1.预备知识 resultMap是mybatis里的一个高级功能。通过利用association和collection,可以做到将多个表关联到到一起,但又不用写JOIN这种复杂SQL,有点类似于hibernate、JPA。 如果不熟悉resultMap的话,可以读一下官方的文档。 2.官方例子 学习最好的方法就是看例子转载 2017-08-03 10:41:17 · 812 阅读 · 1 评论 -
Mybatis如何根据mapper接口生成其实现类
一、序mybatis里头给sqlSession指定执行哪条sql的时候,有两种方式,一种是写mapper的xml的namespace+statementId,如下:public Student findStudentById(Integer studId) { logger.debug("Select Student By ID :{}", studId);转载 2017-11-27 16:48:32 · 8908 阅读 · 0 评论