mybatis是警察
druid是武器库(有很多q)
jdbc是武器商(他们造q给武器库)
当你需要一次"除暴安良"时,你需要去找警察,警察从武器库拿q干活
以往的开发,是你使用jdbc直接造q,然后自己干活
jdbc整合了:加载数据库驱动,创建连接,写原生语句,执行,关闭这些东西
而mybatis是对jdbc的封装,他允许你通过配置的形式,配置数据库参数,并且允许你通过xml来写动态sql语句<if:test>让你可以把sql变得灵活起来并且还能将你的查询结果直接映射到你想要的实体上面
然后你就去配置你的用户名,密码,连接超时,等等
等你下次使用mybatis时,他后面会根据你的配置,帮你加载数据库驱动,创建连接,写原生语句,执行,关闭
但是mybatis发现,在你每次访问都要重新创建创建连接,写,关很麻烦,所以mybatis说,我可以接受你再配置一个连接池,比如druid
mybatis让你指定连接池是谁,如druid之后将原来自己需要搞的东西都交给druid什么账号了,密码了都给他,让druid帮你创建一批连接,在你需要用的时候,mybatis从druid里面拿一个就行
下面是一次简单的访问流程:
controller->service->dao->mapper
1首先项目启动时druid就已经使用jdbc创建好一堆连接了,留待后用
2当请求到mapper时,mybatis框架创建临时类
3然后将动态sql进行替换重写,变成原始的native sql
4从druid拿到一个连接
5将sql通过连接交给数据库执行
6然后获取执行结果
7mybatis进行将结果进行映射,返回数据
说的有点乱,希望能说清楚吧
以上就是关于mybatis+druid+jdbc 原理介绍全部的内容,包括:mybatis+druid+jdbc 原理介绍、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)