tk-mybatis使用

一、序言


本文主要目的是介绍平台组件之Mapper组件的使用方法,使得一位研发工程师在本文的帮助下就能够达到运用熟练的基本目的。同时还介绍了Mapper组件的生态能力,为后续广大使用者使用和扩展Mapper组件起到奠基的作用。

本组件最大的优点是生态扩展能力,自带的基础功能仅为提供最基本的组件特征,只有强大的生态能力,才能让该组件得到日益的丰富,而不是单靠一个人,一个组件就能带来一片生机。

如果你想迅速了解Mapper组件带来了什么,请直接查看第三章

二、组件介绍


1、前置条件

学习和使用Mapper组件的前置条件:

①、软件版本-基于Mybatis3.0.5,以及mybatis-spring-1.0.1,配套的Spring版本为3.0.5;

②、编译JDK版本号:1.6,支持运行环境1.7,未使用到1.7+的特性代码;

③、掌握基本的Mybatis3.0+,以及Spring3.0+的使用方法;

④、额外依赖:slf4j-api 任意版本(不传递依赖),

2、独立性和兼容性

☆、Mapper组件没有修改Mybatis原生态的代码,而是采用扩展和改写的方式来扩展和增强Mybatis的使用;

☆、Mapper组件可以独立使用,可以在任意能够使用Mybatis 3.0+的系统中直接使用;

☆、Mapper组件采用的是反射,继承,可选组件兼容等方式来增强Mybatis的能力,因此升级Mybatis组件可能会存在版本不兼容的情况;

☆、Mapper组件采用Maven管理,对外部组件依赖采用provided,也即不传递依赖任何其它组件,如果需要,自行导入;

☆、Mapper组件对在spring环境下,对mybatis-spring-1.0.1版本的依赖是可选的,即便我们使用到的Spring组件;

☆、Mapper组件对在spring环境下,对Spring组件的依赖是可选的,如果需要使用到Spring,那么建议版本为 [3.0.5, 4.0.0);

☆、Mapper组件对于已有的使用Mybatis的项目(可以是Spring环境下)是能够兼容的(稍许核心配置需要修改);

 

 

3、环境的搭建

POM依赖如下:

expand source

其中framework.mapper.version值,为引用的版本号,请参见发行手册。以下使用都是基于本章节的前置条件的基础之上的。

注:因该组件采用的scope为provider进行组件的依赖,因此不会做任何传递依赖,需要自行引入Mybatis组件。

⑴、独立环境的使用


①自定义mybatis-config.xml配置文件

注:内容不做额外的限制,并不依赖于sqlmap配置文件

②创建测试表以及数据

注:测试数据采用的是hsqldb的语法,如果使用oracle数据库,请自行调整。

③构建SqlSessionFactory

注:其中getConfigFileAsReader() 为①的配置文件的流对象。

④创建PO对象以及Mapper接口

注:类名和表名一致,除了首字符大写,命名规则有限制,不要使用驼峰模式(后续有介绍原因);

注:字段名和②列名一致,命名规则有限制,不要使用驼峰模式(后续有介绍原因);

注:此处省略了构造函数以及GET和SET方法,请自行补充;

注:此Mapper的类名命名规则无限制,仅需要继承Mapper组件中的通用Mapper<T>接口即可,其中T为泛型为上述的实体类对象(必须)。

⑤配置和测试Mapper对象

注:使用Mapper前,需要将待测试的Mapper接口,添加进去(添加的方式有多种,这里目前只演示这一种)。

注:没有任何要求,跟原生态一样

⑥小结

使用方面,除了构造SqlSessionFactory跟原生态不一致(更换了一个API)其它基本相同。

注:更多使用,请参考第4章节(组件的使用)

⑵、基于Spring环境(不依赖于与mybatis-spring组件)


①构建SqlSessionFactory

注:需要配置MapperSqlSessionFactoryBean,且仅依赖一个数据源,其它所有的配置均为可选,你没看错,可选的mybatis-config.xml,可选的sqlmap.xml。

②创建测试表以及数据

参见上一章节

③创建PO对象以及Mapper接口

参见上一章节

④配置Mapper对象(方式一)

注:常规的执行配置MapperFactoryBean,并且不依赖于mybatis-spring(Mapper组件已经提供),仅需要配置上述的SqlSessionFactory即可。

⑤配置Mapper对象(方式二)

注:采用配置应用端Mapper接口的包路径的扫描方式即可,完成所有该目录下的Mapper的配置能力,减少大面积的配置,省心省事。

注:使用端可以采用ByType方式注入,或者采用ByType方式从Spring容器中获取。又或者使用默认的Spring的Name生成规则,采用ID,本例的CountryMapper的ID应该为(countryMapper)。

⑥测试Mapper对象

注:直接获取,或者依赖注入。

⑦小结

除了构造SqlSessionFactory的FactoryBean类更换以外,其它基本相同。

注:更多使用,请参考第4章节(组件的使用)

⑶、基于Spring环境(兼容mybatis-spring组件)

本章节除去配置Mapper对象(方式一)不一致外,其它所有跟上小章节一致。

注:区别在于一个使用原生态mybatis-spring,一个使用了Mapper组件自带的MapperFactoryBean。目前可以做到无缝兼容共存,省去一个外部依赖包。

⑷、基于现有架构体系下研发环境的搭建(最优)

保持和(2)章节一致,其中配置部分采用扫描方式即可。

⑸、基于现有架构体系下研发环境的搭建(兼容)

保持和现有模式一致,仅需要替换掉net.carefx.framework.mybatis.FcSqlSessionFactoryBean为 com.cenboomh.hit.framework.mybatis.spring.MapperSqlSessionFactoryBean即可。

其中有关 <property name="dialectManager" ref="dialectManager" /> 是可选配置,为了保持兼容极度压缩减少切换成本,Mapper组件提供一个空的set方法。

 

 

三、组件的使用

本章节主要介绍Mapper组件的基本用法,高级用法,以及生态扩展能力。

 

0301、基础API介绍

在仅拥有一个普通的JavaBean,一个空的Mapper接口(继承通用Mapper<T>),没有任何额外的配置文件的情况下能给我们带来什么呢?

我们先使用IDEA开发工具,在拿到CountryMapper对象的句柄的前提下(参见环境搭建章节),看看该对象能够提供什么?如下图:

乍一眼看下去,竟然拥有多达20+个函数可供我们使用。但是远远不止,Mapper组件提供生态的扩展能力,可以使得广大研发工程师可以自行扩展,并无缝加入到Mapper组件中,以维持该组件的再生能力(详情参见“生态扩展”章节)。

先不说这20+个函数到底如何使用,有什么功效,关键是我们研发人员仅仅就写了一个普通的javaBean,一个空的接口,就这样了?是的,没错就是怎么简单,这么任性。

030101、基本函数的使用列表

我们分别来介绍下目前版本中的13个函数都能起到什么作用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值