随笔分类 - Mybatis
摘要:隔了两周,首先回顾一下,在Mybatis中的SqlMapper配置文件中引入的几个扩展机制: 1.引入SQL配置函数,简化配置、屏蔽DB底层差异性 2.引入自定义命名空间,允许自定义语句级元素、脚本级元素 3.引入表达式配置,扩充SqlMapper配置的表达能力 前面两条已经举过例子,现在来看看怎么
阅读全文
摘要:三、子表删除兼容问题 这个问题,使用SQL配置函数不太好处理,而且就算使用SQL配置函数,也不够直观,有点自动生成SQL的意味,太Hibernate了(不过要是可以兼收Hibernate和Mybatis两家之长,那也是一个不错的主意),下面我们使用自定义命名空间的方式来解决。 1、编写sqlmapp
阅读全文
摘要:奋斗了好几个晚上调试程序,写了好几篇博客,终于建立起了Mybatis配置的扩展机制。虽然扩展机制是重要的,然而如果没有真正实用的扩展功能,那也至少是不那么鼓舞人心的,这篇博客就来举几个扩展的例子。 这次研读源码的起因是Oracle和MySQL数据库的兼容性,比如在Oracle中使用双竖线作为连接符,
阅读全文
摘要:接上一篇博文,这一篇来讲述怎么实现SchemaSqlMapperParserDelegate——解析SqlMapper配置文件。 要想实现SqlMapper文件的解析,还需要仔细分析一下mybatis的源码,我画了一个图来协助理解,也可以帮助形成一个整体概念: 当然,这幅图不止是原生的解析,也包括了
阅读全文
摘要:编写好XSD文件,然后来看怎么使用XSD文件校验,并解析SqlMapper文件,也就是实现doParseSqlMapperResourceWithSchema()方法。 为了实现这个功能,有两个基本要求: (1)兼容性:需要兼容mybatis的原生配置,兼容有两种层级,一种是使用DTD校验,这个前面
阅读全文
摘要:这篇文章以前面对SqlSessionFactoryBean的重构为基础,先简单回顾一下做了哪些操作: 现在来看怎么扩展,首先创建SchemaSqlSessionFactoryBean,继承重构后的SqlSessionFactoryBean,在XML配置中同步修改为新建的类: 对于一些简单的功能扩展,
阅读全文
摘要:三、代码重构 1、先使用Eclipse把buildSqlSessionFactory()方法中众多的if换成小函数 说明一下: 这里的重构全部使用Eclipse完成,操作步骤是选定需要重构的代码,右键选择Refactor—>Extract Method,然后输入新的方法名,点击OK完成 新方法名规则
阅读全文
摘要:一般来说,修改框架的源代码是极其有风险的,除非万不得已,否则不要去修改。但是今天却小心翼翼的重构了Mybatis官方提供的与Spring集成的SqlSessionFactoryBean类,一来是抱着试错的心态,二来也的确是有现实需要。 先说明两点: 通常来讲,重构是指不改变功能的情况下优化代码,但本
阅读全文
摘要:Mybatis是业界非常流行的持久层框架,轻量级、易用,在金融IT领域完全是领军地位,比Hibernate更受欢迎,优势非常多,也是非常值得我们学习的。但Mybatis并不尽善尽美,其自身的设计、编码也还有许多不足,甚至是缺陷,这篇文章来简要讨论一下这些缺陷: 1.Mybatis使用DTD作为XML
阅读全文
摘要:这篇博客中来说一下对Mybatis动态代理接口方式的扩展,对于Mybatis动态代理接口不熟悉的朋友,可以参考前一篇博客,或者研读Mybatis源码。 扩展11:动态代理接口扩展 我们知道,真正在Mybatis动态代理接口方式背后起作用的是SqlSession接口,类似地,我们的动态代理接口扩展则是
阅读全文
摘要:为了说明后续的Mybatis扩展,插播一篇广告,先来简要说明一下Mybatis的一种原生用法,不过先声明:下面说的只是Mybatis的其中一种用法,如需要更深入了解Mybatis,请参考官方文档,或者研读源码。 我们知道,使用Mybatis的方式有很多种,从是否集成上分,可以单独使用,也可以和Spr
阅读全文
摘要:接着昨天的Mybatis扩展——IDaoTemplate接口。 扩展9:批量执行 1、明确什么是批量执行 首先说明一下,这里的批量执行不是利用<foreach>标签生成一长串的sql字符串——这并不是真正的JDBC批量执行,我这里所说的批量是指在内核调用JDBC的addBatch、executeBa
阅读全文
摘要:忙里偷闲,继续上周的话题,记录Mybatis的扩展。 扩展5:设置默认的返回结果类型 大家知道,在Mybatis的sql-mapper配置文件中,我们需要给<select>元素添加resultType或resultMap属性,这两个属性有且只能有一个。2013年我在做一个系统的时候,因为业务关系,查
阅读全文
摘要:今天来记录一下对Mybatis的扩展,版本是3.3.0,是和Spring集成使用,mybatis-spring集成包的版本是1.2.3,如果使用maven,如下配置: <properties>元素下添加 1 <mybatis.version>3.3.0</mybatis.version> 2 <my
阅读全文
摘要:Java EE 开发平台随手记 Java EE开发平台随手记1 Java EE开发平台随手记2——Mybatis扩展1 Java EE开发平台随手记3——Mybatis扩展2 Java EE开发平台随手记4——Mybatis扩展3 Java EE开发平台随手记5——Mybatis动态代理接口方式的原
阅读全文