图1 Java数据库数据存取演化路径
数据库是主流的数据存取软件,绝大部分的系统都采用这种方式。数据存取随着技术、业务的发展,不断的发展演化,具体的演化路径如下:
数据库产品多种多样,为了规范数据库的访问,统一采用业界知名的JDBC规范。JDBC是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,主要功能是与数据库建立连接、发送SQL语句、处理结果。JDBC为每一次的数据存取,都建立连接,完成之后,释放连接,这样在并发量大的场景中,数据库连接和释放占用过多的资源,成为瓶颈。
DataSource就是为了解决数据库连接和释放工作的,把数据库的连接和释放分离出来,形成单独的数据源服务,进而形成连接池,解决了数据库连接的建立、释放的集中管理,提高了效率。
Seata是分布式事务的解决方案,代理和增强了DataSource,向第三方开放本地事务,共同协作解决分布式事务问题。
SharingJdbc实现了分库分表的功能,统一逻辑代码实现,实际上是包装了多个DataSource,逻辑上一个库一张表,实际上对应不同数据源的多个库多张表
MyBatis是利用数据库现有的存取能力,即被DataSource、Seata和SharingJDBC增强了的数据库存取能力,又增加了参数和返回数据结果与Java Bean的互相映射功能。
领取专属 10元无门槛券
私享最新 技术干货