
Mybatis示例
文章平均质量分 94
Mybatis示例源码基本来自于Mybatis项目的测试代码,通过测试代码深入了解Mybatis的使用。
isea533
《MyBatis从入门到精通》作者,MyBatis分页插件PageHelper作者,通用Mapper作者,个人网站:https://mybatis.io
展开
-
通用 Mapper 进阶实例:为什么好久都没更新了?
写篇博客关于通用 Mapper,通用 Service 方法。可以简单实现同级列表数据的上下拖拽改变顺序。为什么很久没更新?核心已经很完善了,扩展也很容易。实际上我还想精简方法,不想增加过多的方法,有需要的自己扩展。...原创 2020-03-16 22:40:58 · 11258 阅读 · 17 评论 -
MySQL JSON 类型用法
MySQL JSON 类型用法存取示例直接使用 通用 Mapper1. 数据库存取使用 MyBatis 操作数据库,针对 JSON 类型字段,提供一个类型处理器用于数据库存取时的数据转换。1.1 类型处理器@MappedTypes({Map.class, JsonObject.class, JsonArray.class, JsonPojo.class})public class ...原创 2020-02-13 18:23:44 · 3225 阅读 · 0 评论 -
MyBatis 示例之存储过程(三)
在开始阅读本篇前,建议先看前两篇: MyBatis 示例之存储过程(一) http://blog.csdn.net/isea533/article/details/76358365 MyBatis 示例之存储过程(二) http://blog.csdn.net/isea533/article/details/77148552本示例是《MyBatis 从入门到精通》 书中第三原创 2017-08-26 09:05:31 · 3142 阅读 · 0 评论 -
MyBatis 示例之存储过程(二)
在开始阅读本篇前,建议先看前一篇: MyBatis 示例之存储过程(一) http://blog.csdn.net/isea533/article/details/76358365本示例是《MyBatis 从入门到精通》书中第二个存储过程的例子,有关本示例的基础环境,可以从 http://mybatis.tk 或者 https://github.com/mybatis-book/book原创 2017-08-13 18:09:01 · 2282 阅读 · 3 评论 -
MyBatis 示例之存储过程(一)
本示例是《MyBatis 从入门到精通》书中第一个存储过程的例子,有关本示例的基础环境,可以从 http://mybatis.tk 或者 https://github.com/mybatis-book/book 获取,示例源码在 simple-all 中。存储过程在数据库中比较常见,虽然大多数存储过程比较复杂,但是使用 MyBatis 调用时,用法都一样,因此我们这一节使用一个简单的存储过程来了解原创 2017-07-29 21:04:46 · 20415 阅读 · 6 评论 -
MyBatis XML 标签类型说明
MyBatis XML 标签类型说明resultMap 标签的类型属性为 type(必填)。id, result 标签的类型属性为javaType(可选)。idArg, arg 标签和上面两个类似,也都是 javaType(可选)。association 标签的类型属性为 javaType(可选)。discriminator 标签的类型属性为 javaType(可选)。collectio原创 2017-07-28 10:36:33 · 7329 阅读 · 0 评论 -
Executor 拦截器高级教程 - QueryInterceptor 规范
Executor 拦截器高级教程 - QueryInterceptor 规范这篇文档涉及下面几个方面 1. Executor query 方法介绍 2. 拦截器配置和调用顺序 3. 拦截 query 方法的技巧 4. 拦截 query 方法的规范 5. 如何配置不同的 Executor 插件1. Executor query 方法介绍在 MyBatis 的拦截器的文档部分,我们知道 Exe原创 2016-12-31 17:45:33 · 6969 阅读 · 7 评论 -
MyBatis多数据源配置(读写分离)
MyBatis多数据源配置(读写分离)首先说明,本文的配置使用的最直接的方式,实际用起来可能会很麻烦。实际应用中可能存在多种结合的情况,你可以理解本文的含义,不要死板的使用。多数据源的可能情况1.主从通常是MySql一主多从的情况,本文的例子就是主从的情况,但是只有两个数据源,所以采用直接配置不会太麻烦,但是不利于后续扩展,主要是作为一个例子来说明,实际操作请慎重考虑。针对这种情况,一个更好的解决方原创 2015-07-09 13:45:39 · 65795 阅读 · 21 评论 -
从命令行运行 MyBatis Generator
最近发现好多人在使用 MyBatis Generator (简称 MBG)时遇到各种各样的问题,常见的如编码问题,还有如何引入其他 jar 包等问题。MBG 的基本用法可以看我博客的《Mybatis Geneator详解》。为了方便大家可以直接运行 MBG,并且解决编码的问题,给大家提供了一个配置好的 MBG 插件,还包含了使用其他插件时如何在命令行中设置的用法。下载地址: 链接:http://p原创 2016-12-26 20:16:22 · 5556 阅读 · 2 评论 -
MyBatis 返回动态结果类型插件
MyBatis 返回动态结果类型插件说明虽然写了这么一个插件,但是个人建议尽可能不去这么用,如果这个插件真正能方便你,使用起来也没任何问题。关于插件的一些个人修改建议,在插件的注释中有说明。插件用途:可以在 MyBatis 参数中带上要返回的类型Class,插件就会改变返回值类型为你指定的类型。用法说的可能不清楚,看个简单的用法。MyBatis 中定义如下方法:Object selectById(@原创 2016-10-16 18:41:29 · 13579 阅读 · 2 评论 -
MyBatis Excutor 拦截器的巧妙用法
这里要讲的巧妙用法是用来实现在拦截器中执行额外 MyBatis 现有方法的用法。并且会提供一个解决拦截Excutor时想要修改MappedStatement时解决并发的问题。这里假设一个场景: 实现一个拦截器,记录 MyBatis 所有的 insert,update,delete 操作,将记录的信息存入数据库。这个用法在这里就是将记录的信息存入数据库。实现过程的关键步骤和代码:1.首先在某个原创 2016-10-05 16:04:27 · 12337 阅读 · 6 评论 -
MyBatis Generator 1.3.4 扩展,可以设置 Mapper(Dao)后缀
MyBatis Generator 1.3.4 扩展可以设置 Mapper(Dao)后缀MyBatis Generator 简称 MBG,MBG 1.3.4 版本在<table>元素上提供了一个 mapperNam 的属性,可以设置生成的 Mapper 名字,使用方法如下:<table tableName="sys_store" mapperName="StoreDao"> <generat原创 2016-09-04 10:51:25 · 33530 阅读 · 6 评论 -
MyBatis 执行动态 SQL
应老婆要求写的这篇博客。大家基本上都知道如何使用 MyBatis 执行任意 SQL,使用方法很简单,例如在一个 XXMapper.xml 中:<select id="executeSql" resultType="map"> ${_parameter}</select>你可以如下调用:sqlSession.selectList("executeSql", "select * from sy原创 2016-08-30 15:20:43 · 17795 阅读 · 4 评论 -
MyBatis 3.4.0 版本功能介绍
这里只列举部分重要的内容,详细内容看官方说明新增功能1. Cursor 新增返回值类型为游标的方法当查询大量(上百万)数据的时候,使用游标可以有效的减少内存使用,不需要一次性将所有数据得到,可以通过游标逐个或者分批(逐个获取一批后)处理。SqlSession 中新增的 3 个游标方法:/** * A Cursor offers the same results as a List, except原创 2016-05-29 20:36:35 · 18745 阅读 · 2 评论 -
MyBatis 3.3.1 版本新功能示例
MyBatis 3.3.1版本新功能示例MyBatis3.3.1更新日志: https://github.com/mybatis/mybatis-3/issues?q=milestone%3A3.3.1这里不对更新做翻译或者其他详细介绍。 这个更新除了一些bug修复,还有两个新增的功能:增加了对批量插入回写自增主键的功能增加了注解引用@Results的功能下面通过简单例子来介绍这两个功能,原创 2016-03-06 18:51:03 · 8680 阅读 · 5 评论 -
MyBatis中的OGNL教程
MyBatis中的OGNL教程原创 2015-12-05 18:47:31 · 60966 阅读 · 11 评论 -
MyBatis底层基础和拦截器 - 第一部分
MyBatis底层基础和拦截器 - 第一部分第一部分包含了下面代码的基本讲解和下面代码与XML配置关系和作用的讲解。这一部分是了解后续拦截器和SqlSource的重要基础。本视频不仅对深入学习MyBatis有用,对于一般的MyBatis使用也能加深理解。第一部分完整视频+源文件+PPT下载地址:http://pan.baidu.com/s/1mgzZnx2在第一部分视频后,还有一些和MyBatis相原创 2015-11-30 21:59:31 · 5515 阅读 · 2 评论 -
深入了解MyBatis返回值
深入了解MyBatis返回值想了解返回值,我们需要了解resultType,resultMap以及接口方法中定义的返回值。我们先看resultType和resultMapresultType和resultMap大家应该都知道在MyBatis的<select>标签中有两种设置返回值的方式,分别是resultMap和resultType。处理resultMap和resultType的代码如下:priva原创 2015-06-10 17:07:01 · 123098 阅读 · 18 评论 -
MyBatis日期用法技巧
MyBatis日期用法技巧原创 2015-05-12 12:59:30 · 28704 阅读 · 1 评论 -
MyBatis-Spring配置简单了解
MyBatis-Spring配置简单了解SqlSessionFactoryBean配置在基本的 MyBatis 中,session 工厂可以使用 SqlSessionFactoryBuilder 来创建。而在 MyBatis-Spring 中,则使用 SqlSessionFactoryBean 来替代。示例&lt;bean id=&quot;sqlSessionFactory&quot; class=&quot;org.mybatis原创 2015-05-11 11:10:10 · 62619 阅读 · 11 评论 -
MyBatis实现SaveOrUpdate
MyBatis实现SaveOrUpdate这篇文章主要讲如何通过xml方式实现SaveOrUpdate,但是仍然建议在Service中实现。例子<insert id="saveOrUpdate" > <selectKey keyProperty="count" resultType="int" order="BEFORE"> select count(*) from country wh原创 2015-05-08 13:31:39 · 92337 阅读 · 9 评论 -
深入了解MyBatis二级缓存
MyBatis深入了解二级缓存原创 2015-03-30 08:57:42 · 86245 阅读 · 31 评论 -
MyBatis直接执行SQL的工具SqlMapper
可能有些人也有过类似需求,一般都会选择使用其他的方式如Spring-JDBC等方式解决。能否通过MyBatis实现这样的功能呢?为了让通用Mapper更彻底的支持多表操作以及更灵活的操作,在2.2.0版本增加了一个可以直接执行SQL的新类SqlMapper。通过这篇博客,我们来了解一下SqlMapper。SqlMapper提供的方法SqlMapper提供了以下这些公共方法:Map<String,O原创 2015-03-11 09:47:02 · 51220 阅读 · 16 评论 -
深入了解MyBatis参数
相信很多人都遇到过下面这些异常:"Parameter 'xxx' not found. Available parameters are [...]"等等不只是上面提到的这几个,我认为有很多的错误都产生在和参数有关的地方。想要避免参数引起的错误,我们需要深入了解参数。想了解参数,我们首先看MyBatis处理参数和使用参数的全部过程。本篇由于为了便于理解和深入,使用了大量的源码,因此篇幅较长,需要一定的耐心看完原创 2015-03-02 09:36:01 · 158033 阅读 · 31 评论 -
Mybatis 示例之 TypeHandler
关于TypeHandler的基础内容可以参考官方中文文档: http://mybatis.github.io/mybatis-3/zh/configuration.html#typeHandlersTypeHandler写起来很容易,但是有一个很重要的点需要注意。你是否遇到过类似下面的错误:Caused by: java.lang.RuntimeException: 调用方法异常:java.l原创 2015-02-28 16:34:02 · 42408 阅读 · 2 评论 -
Mybatis 示例之 复杂(complex)属性(property)
Mybatis示例专栏:http://blog.csdn.net/column/details/mybatis-sample.htmlMybatis的复杂属性,Mybatis的这个特点很少被提及,但是有些时候确实又有用。Mybatis的复杂属性指的什么呢?有如下两个对象:在User对象中有一个字段password,类型是EncryptedString,这原创 2014-04-18 08:40:43 · 19850 阅读 · 3 评论 -
Mybatis 示例之 foreach (下)
foreach是用来对3种类型的对象进行循环操作的,关于foreach的基础知识请看:Mybatis 示例之 foreach (上)这节讲的是foreach中map的用法。map和List,array相比,map是用K,V存储的,在foreach中,使用map时,index属性值为map中的Key的值。因为map中的Key不同于list,array中的索引,原创 2014-03-28 08:24:05 · 38211 阅读 · 10 评论 -
Mybatis 示例之 foreach (上)
(由于csdn抽风,所以删除两篇重复内容重发)foreach一共有三种类型,分别为List,[](array),Map三种。foreach的第一篇用来将List和数组(array)。下面表格是我总结的各个属性的用途和注意点。foreach属性属性描述item循环体中的具体对象。支持属性的点路径访问,如item.age,it原创 2014-03-14 14:54:49 · 122946 阅读 · 10 评论 -
Mybatis 示例之 SelectKey
SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,他可以很随意的设置生成主键的方式。不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦。selectKey Attributes属性描述keyPropertyselectKey 语句结果应该被设置的目标属性。resultTyp原创 2014-03-13 09:21:33 · 144526 阅读 · 25 评论 -
Mybatis 示例之 Association (2)
接上篇:Mybatis 示例之 Association上一篇讲到了association的关联结果查询,这里讲association的关联的嵌套查询,这种方式用起来很容易,和关联结果查询相比缺点就是会执行关联SQL,增加一定的查询。关联的嵌套查询属性描述column来自数据库的类名,或重命名的列标签。这和通常传递给result原创 2014-03-11 13:44:03 · 10389 阅读 · 1 评论 -
Mybatis 示例之 Association
接下来的文章中,关于Mybatis的示例,全部来自于Mybatis代码中的单元测试代码,通过这些代码能够学习Mybatis中很有用的知识,这些内容在doc文档中可能只是简单提到了,或者有一些文字说明,通过这些单元测试能更直观的了解如何在Mybatis使用这些内容。association – 一个复杂的类型关联;许多结果将包成这种类型嵌入结果映射 – 结果映射自身的关联,或者原创 2014-03-09 22:42:18 · 120973 阅读 · 7 评论