从数据库连接到Mybatis到spring到springboot梳理

12 篇文章 0 订阅

这里介绍一下 数据库操作相关组件的梳理、不涉及具体的代码操作。

驱动

java.sql.Driver

JDK提供的驱动接口,指定了获取连接的标准接口,任何数据库厂家,都需要提供一个Java版本的驱动包并实现驱动接口,来完成改数据库的连接操作。

数据库连接

java.sql.Connection 

当通过驱动获取到连接后,就可以进行数据库操作了。这个连接可做很多事情,可以理解成我们通过Navicat等工具开了一个查询窗口。

例如:可以 设置 事务隔离级别、设置自动提交、提交事务、回滚事务、获取 一次数据库操作会话

操作数据库

java.sql.Statement

java.sql.PreparedStatement

java.sql.CallableStatement

 

当我们需要执行SQL语句时,就是通过数据库连接获取一个 会话对象来完成的。

可以执行SELECT :

ResultSet executeQuery(String sql) throws SQLException

可以执行INSERT/UPDATE/DELETE

int executeUpdate(String sql) throws SQLException 

当执行SELECT时,会返回查询的结果,这些结果被封装在

java.sql.ResultSet 

Mybatis

对于数据库操作,很多都是重复的工作,Mybatis包装了这些重复的工作,开发人员只需要编写SQL语句,就可以完成数据库的操作了。

 动态代理技术

Mybatis使用了JDK动态代理技术,完成了接口调用这一块的核心代码的编写。

protected T newInstance(MapperProxy<T> mapperProxy) {
    return (T) Proxy.newProxyInstance(mapperInterface.getClassLoader(), new Class[] { mapperInterface }, mapperProxy);
  }

因此,我们只要写一个接口,就可以调用这个接口的方法,来执行SQL。就是这个原理。

而,真正执行SQL的,是通过Mybatis提供的SqlSession来调用的。SqlSession提供了一些API,更方便的执行SQL。

经过一系列的包装,调用,最终代码会走到上面提到的,获取连接、获取statement、执行SQL、结果处理等。

Mybatis+Spring

Spring 在日常开发中,是必不可少的组件。怎么将Mybatis和Spring配合起来?

Mybatis提供了一个SqlSession接口来完成各种数据库的操作,只需要获取到SqlSession对象就可以了。

在mybatis-sprinig.jar包中,提供了一个 工厂类,用来创建SqlSession对象。

org.mybatis.spring.SqlSessionFactoryBean

 

因此只有在Spring容器中加入 这个工厂Bean即可。

spring boot

到这里,想要再spring boot中使用mybatis,就已经有思路了。只需要加一个 autoconfig完成SqlSession对象创建的工厂就可以了。

不论mybatis,还是spring,还是spring boot,其实,都是 在一层一层的包装,使操作越来越简单。最终还是得一层一层的解壳,用到最原始那个真正干活的东西。

(完)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值