mybatis
菜鸟笔记
java成长笔记
展开
-
mybatis 查询返回Map<String,Object> 类型
mybatis 查询返回Map<String,Object> 类型,平时没太注意怎么用,今天又遇到了总结记录一下,方便以后处理此类问题。Mapper.java中的方法:@MapKey("userId")Map<String,UserInfo> personalInfoByUserIds(List<String> list);mapper.xml文件中的配置:<select id="personalInfoByUserIds" resul原创 2022-03-25 16:19:28 · 4543 阅读 · 3 评论 -
深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap
上篇《深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete》介绍了insert、update、delete的用法,本篇将介绍select、resultMap的用法。select无疑是我们最常用,也是最复杂的,mybatis通过resultMap能帮助我们很好地进行高级映射。下面就开始看看select 以及 resultMap的用法:先转载 2016-06-15 11:15:32 · 2459 阅读 · 0 评论 -
深入浅出Mybatis系列(九)---强大的动态SQL
上篇文章《深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap》简单介绍了mybatis的查询,至此,CRUD都已讲完。本文将介绍mybatis强大的动态SQL。那么,问题来了: 什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误转载 2016-06-15 11:30:31 · 412 阅读 · 0 评论 -
深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇)
最近太忙了,一直没时间继续更新博客,今天忙里偷闲继续我的Mybatis学习之旅。在前九篇中,介绍了mybatis的配置以及使用, 那么本篇将走进mybatis的源码,分析mybatis 的执行流程, 好啦,鄙人不喜欢口水话,还是直接上干活吧:1. SqlSessionFactory 与 SqlSession. 通过前面的章节对于mybatis 的介绍及使用,大家都能体会到SqlS转载 2016-06-15 13:48:02 · 910 阅读 · 1 评论 -
MyBatis整体预览(一)
题记:最近在工作之余分析了一下MyBatis的源码,促使我阅读源码的原因是为了实现MyBatis在物理上的分页。我们知道,MyBatis是在逻辑上的分页,通过用户的查询,将结果缓存下来,在查看是否传递了RowBounds对象,在查看里面的offset和limit值,通过这两个值,从返回的结果集合中截取位于期间的值。但是这样并不是很好,可以想想,如果假设查询的数据量很大,但是有用的可以是前几条,这未转载 2016-07-20 16:14:23 · 544 阅读 · 0 评论 -
Hibernate与 MyBatis的比较
第一章 Hibernate与MyBatisHibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分。 Mybatis 是另外一种优秀的O/R mapping框架。目前属于apache的一个子项目。MyBatis 参考资料官网:http://www.mybatis.org/core/zh/index.html转载 2017-03-22 10:24:51 · 325 阅读 · 0 评论 -
Mybatis Generator最完整配置详解
同学们有福了,花了一些时间,重新整理了一个最完整的Mybatis Generator(简称MBG)的最完整配置文件,带详解,再也不用去看EN的User Guide了;xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generat转载 2017-07-10 17:40:27 · 290 阅读 · 0 评论 -
用mybatis往oracle批量插入数据报错java.lang.StackOverflowError
往oracle中批量插入10000条数据,报错如下java.lang.StackOverflowError at java.util.HashMap.hash(HashMap.java:362) at java.util.HashMap.getEntry(HashMap.java:462) at java.util.HashMap.get(HashMap.java:417) at com.alib...原创 2018-06-07 10:22:07 · 4363 阅读 · 4 评论 -
mybatis 缓存总结以及遇到的问题
一级缓存MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。 但是不同的SqlSession对象,因为不同的SqlSession都是相互隔离的,所以相同的Mapper、参数和方法,他...原创 2018-06-01 15:05:47 · 9127 阅读 · 1 评论 -
深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete
上篇文章《深入浅出Mybatis系列(六)---objectFactory、plugins、mappers简介与配置》简单地给mybatis的配置画上了一个句号。那么从本篇文章开始,将会介绍mapper映射文件的配置, 这是mybatis的核心之一,一定要学好。在mapper文件中,以mapper作为根节点,其下面可以配置的元素节点有: select, insert, update, dele转载 2016-06-15 10:15:11 · 437 阅读 · 0 评论 -
深入浅出Mybatis系列(六)---objectFactory、plugins、mappers简介与配置
上篇文章《深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)》简单看了一下TypeHandler, 本次将结束对于mybatis的配置文件的学习, 本次涉及到剩下没提及到的几个节点的配置:objectFactory、databaseIdProvider、plugins、mappers。那么,接下来,就简单介绍一下这几个配置的作用吧:1转载 2016-06-14 16:49:16 · 787 阅读 · 0 评论 -
Mybatis传多个参数(三种解决方案)
第一种方案 DAO层的函数方法 ?1PublicUser selectUser(String name,String area);对应的Mapper.xml ?123selectid="select转载 2016-06-13 10:40:55 · 423 阅读 · 0 评论 -
深入浅出Mybatis系列(一)---Mybatis入门
最近两年 springmvc + mybatis 的在这种搭配还是蛮火的,楼主我呢,也从来没真正去接触过mybatis, 趁近日得闲, 就去学习一下mybatis吧。 本次拟根据自己的学习进度,做一次关于mybatis 的一系列教程, 记录自己的学习历程, 同时也给还没接触过mybatis的朋友探一次道。本系列教程拟 由浅(使用)入深(分析mybatis源码实现),故可能需要好长几天才能更新完。好转载 2016-05-31 16:00:33 · 806 阅读 · 0 评论 -
深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)
上篇文章《深入浅出Mybatis系列(一)---Mybatis入门》, 写了一个Demo简单体现了一下Mybatis的流程。本次,将简单介绍一下Mybatis的配置文件:上次例子中,我们以 SqlSessionFactoryBuilder 去创建 SqlSessionFactory, 那么,我们就先从SqlSessionFactoryBuilder入手, 咱们先看看源码是怎么实现的:转载 2016-05-31 16:11:34 · 389 阅读 · 0 评论 -
深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
上篇文章《深入浅出Mybatis系列(二)---配置简介(mybatis源码篇)》我们通过对mybatis源码的简单分析,可看出,在mybatis配置文件中,在configuration根节点下面,可配置properties、typeAliases、plugins、objectFactory、objectWrapperFactory、settings、environments、databaseId转载 2016-05-31 16:41:51 · 1182 阅读 · 0 评论 -
深入浅出Mybatis系列(五)---TypeHandler简介及配置(mybatis源码篇)
上篇文章《深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)》为大家介绍了mybatis中别名的使用,以及其源码。本篇将为大家介绍TypeHandler, 并简单分析其源码。Mybatis中的TypeHandler是什么? 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出转载 2016-05-31 18:02:53 · 1407 阅读 · 0 评论 -
MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping
mybatis-generator-core下载由于MyBatis属于一种半自动的ORM框架,所以主要的工作将是书写Mapping映射文件,但是由于手写映射文件很容易出错,所以查资料发现有现成的工具可以自动生成底层模型类、Dao接口类甚至Mapping映射文件。一、建立表结构CREATE TABLE `user` ( `id` varchar(50) NOT NULL转载 2016-06-01 16:35:19 · 447 阅读 · 0 评论 -
mybatis中的#和$的区别
1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是111,那么解析成sql时的转载 2016-05-22 10:58:09 · 787 阅读 · 0 评论 -
MyBatis之传入参数
在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和Java复杂数据类型基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值复杂数据类型:包含JAVA实体类、Map。通过#{属性转载 2016-06-13 10:19:18 · 401 阅读 · 0 评论 -
MyBatis传入参数与parameterType
Mybatis的Mapper文件中的select、insert、update、delete元素中有一个parameterType属性,用于对应的mapper接口方法接受的参数类型。可以接受的参数类型有基本类型和复杂类型。mapper接口方法一般接受一个参数,可以通过使用@Param注释将多个参数绑定到一个map做为输入参数。简单数据类型mapper接口方法:转载 2016-06-13 10:40:01 · 7656 阅读 · 0 评论 -
深入浅出Mybatis系列(四)---配置详解之typeAliases别名(mybatis源码篇)
上篇文章《深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)》 介绍了properties与environments, 本篇继续讲剩下的配置节点之一:typeAliases。 typeAliases节点主要用来设置别名,其实这是挺好用的一个功能, 通过配置别名,我们不用再指定完整的包名,并且还能取别名。 例如: 我们转载 2016-05-31 15:51:49 · 3468 阅读 · 0 评论