博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【SSM 7】Mybatis底层封装思路
阅读量:4567 次
发布时间:2019-06-08

本文共 1275 字,大约阅读时间需要 4 分钟。

一、基本概述

在前面的博客中介绍到Mybatis的逆向生成工具,为我们生成了每个实体的基本增删改查的代码,那么每个实体都是那么多的代码,我们很容易的发现,有很大的相似性。对于这部分代码,应该予以抽象封装。

首先,看一下思路,在用工程生成代码的时候 ,我们发现,有一个Mapper.xml文件,在这里面有具体的sql语句,其实,就相当于,我们的DAO底层实现,而还有一个mapper的接口类,这个就相当于是DAO的接口。在mapper.xml和mapper接口类中,每个实体都有很大的相似度,所以,抽象封装的思路是:在mapper.xml中,定义其基本的公用方法实现,在mapper接口类中,定义基本的操作接口。然后,在用每个具体的实体mapper,去实现自身特别的需求。

先看一下简易思路图(PS:本应该用UML图表示的,唉)

二、具体实现

在刚开始的时候,我想着自己从头开始,一步一步的封装,但是在查资料的过程中,发现其实Mybatis的基本底层封装,别人都已经做好了。我们都知道Hibernate有一个HibernateTemplate模板类提供了基础的数据库操作方法,事实上,在Mybatis中,也存在这么一个模板类sqlsessiontemplate,在这个类里面,同样为我们封装了基本的操作方法。

2.1,sqlsessiontemplate

然后,在dao层的使用:

private SqlSessionTemplate sqlSessionTemplate;

声明模板之后,就可以调用模板里面的方法。它包含的方法有:

请查看文档:

 

2.2,通用mapper插件

事实上,上面的方法其实还是需要开发的时候,做一些改动或者修改的。不过,还有一种比上面使用sqlsessiontemplate模板类更为简单的方法,就是直接引入通用mapper插件,这个插件引入之后,通过使用具体的mapper去继承,就拥有了很多符合我们开发习惯的方法。(PS:sqlsessiontemplate的参数类型,不是那么的符合日常开发习惯,至少是我个人,比如我要添加一条数据,那我希望的调用方式是Test.insert(Tb tb)型的)
这个通用mapper的配置和测试,将在下一篇博客中介绍!

 

 

转载于:https://www.cnblogs.com/hhx626/p/6010287.html

你可能感兴趣的文章
面试 9:Java 玩转冒泡排序
查看>>
线程初步了解 - <第一篇>
查看>>
NET(C#):使用HttpWebRequest头中的Range下载文件片段
查看>>
scrollTop()--返回或设置匹配元素的滚动条的垂直位置
查看>>
JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作
查看>>
解决SharePoint2010文档库中新建文档不是保存到文档库而是保存到本地电脑的问题...
查看>>
hadoop3.0新特性及新功能
查看>>
数据库面试常问的一些基本概念
查看>>
Intent中的四个重要属性——Action、Data、Category、Extras
查看>>
Android 自定义 ViewPager 打造千变万化的图片切换效果
查看>>
泛型集合的运用--DataSet转换为泛型集合
查看>>
IsBackground的理解
查看>>
Java中的Scoket编程
查看>>
WPF邮件群发工具开发 之 进度条(属性改变通知机制)的实现
查看>>
ubuntu14.04 放开串口权限
查看>>
HttpClient封装工具类
查看>>
机器学习 回归算法
查看>>
SSM博客登录注册
查看>>
在Linux系统上部署发布java web系统(Ubuntu16.04)
查看>>
shell 学习之脚本编写1
查看>>