一直想写一篇数据库访问的博客,之前很忙,一直没有时间。想写的数据库访问的这个博客不涉及到具体的数据库操作,比如增删改查或者一些ORM框架的使用,比如mybaitis、Hibernate,也不涉及到高阶的事务处理。就是想概况的写一下。
那什么是数据库访问呢,很简单——访问数据库呗。对,就是这么简单,咱们用图来说话,如下图所示:
客户端程序,比如Java程序(因为本人是干Java的,就以java举例),发送消息给关系型数据库,关系数据库返回查询结果给客户端程序。这两者到底是怎么通信的呢,有的人可能会说用JDBC API,这样说也对,但是还是没有涉及到根本。这两者是通过socket通信的。首先客户端程序是属于应用层的,关系型数据库也是属于应用层的,而且关系型数据库一般都有固定的端口,比如mysql的3306.同样客户端程序也有端口(唯一标识一个应用程序:主机IP地址+端口号)。涉及到应用层的2个进程通信,并且还是用的端口,那么就是socket通信,并且这两者之间的这种通信还要求是稳定的,可靠的,那么就要求传输层采用的协议应该是TCP的协议。在这里咱们再来回顾一下TCP/IP模型的四层结构
应用层与应用层的之间的通信。还是以数据库访问为例。客户端程序—>传输层—>网络互联层—>主机到网络层—>主机到网络层—>网络互联层传输层—>数据库。而socket就介于应用层和传输层之间(传输层有我们很熟悉的两大协议TCP和UDP)。到这里了,有人可能要问了那JDBC API是什么,其实这就跟JDBC API和ORM框架的关系差不多,如果我现在让你不用ORM框架了,让你用原生的JDBC去写数据库访问层,你说你痛苦吗。同样的,如果我们用原生的socket通信来做数据库访问也是很复杂的,原因就是各个数据库的采用的应用层协议都不一样,如果采用socket通信的方式访问数据库,那么从oracle切换到mysql访问就要颇费一番周章了,所以SUN公司就提供了一个JDBC API,那么JDBC API是什么——JDBC API是SUN公司定义的java database connectivity,是SUN定义的Java数据库访问规范,说白了,就是接口,由各大数据库厂商去实现,各大厂商去实现与自己的数据库通信的细节。这里就涉及到面向接口编程,面向接口编程能让我们轻松的实现从访问oracle切换到访问mysql。
采用这样的方式也就是JDBC API的方式访问数据库有一下2点好处
第一:简化数据库访问代码,无需涉及到与数据库服务器通信的细节。
第二:不依赖具体的数据库平台,只要数据库提供商实现了JDBC API就可以,这样同一个Java程序就可以访问多个不同类型的数据库。
java程序通过JDBC API访问数据库如图所示:
数据库访问整体上来说就是这样,具体的如何用jdbc访问数据库就不说了。很多资料都有介绍
相关推荐
3. **数据库优化**:除了使用主从复制和读写分离等技术外,还可以通过对SQL查询进行优化、使用索引等方式来提高数据库的性能。 综上所述,高并发架构的设计涉及到多个层面的技术,需要根据实际情况选择合适的技术栈...
【hibernate 杂谈】 ...理解和充分利用这些特性,不仅可以优化数据库访问性能,还能提高代码的可维护性和灵活性。在实际开发中,开发者应根据业务需求灵活选择和配置这些功能,以达到最佳的系统性能和设计。
Hibernate是一个强大的Java对象关系映射框架,它简化了数据库的访问和管理,允许开发者使用面向对象的编程方式来操作数据库。 文章的内容主要分为几个部分,每个部分都针对Hibernate框架的不同应用和技术点进行了...
pro*c学习笔记(一)(2009-09-10 16:30:44)转载标签: proc杂谈 分类: 技术浅谈 一 Pro*C 程序概述: 1.什么是Pro*C程序 在ORACLE数据库管理和系统中,有三种访问数据库的方法:
在千万级用户规模下,除了数据库的分库分表策略,可能还会涉及CDN(Content Delivery Network)来加速静态资源的访问,减少网络延迟;使用一致性哈希算法进行分布式缓存,保证数据的一致性;以及使用如Nginx这样的反向...
这篇名为“系统框架权限设计杂谈论文”的文档很可能是对这一领域的深入探讨。权限设计是任何复杂系统的核心组成部分,特别是在多用户环境中,如何合理地分配和管理权限,确保数据安全并防止未授权访问,是系统架构师...
iBatis是一个优秀的持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,或者通过注解方式定义,与Java代码解耦,提高了数据库访问的灵活性和效率。iBatis的主要特性包括: 1. **动态SQL**:iBatis支持在XML...
Spring对JDBC和ORM的支持简化了数据库的访问和操作。 - **对JDBC的支持**:提供了一套简化JDBC操作的模板类,如JdbcTemplate。这些模板类封装了JDBC API的冗长代码,同时保留了操作的灵活性。 - **对ORM的支持**:...
他还分享了解决数据库读写分离、错误处理、依赖注入失效等问题的经验,以及在特定环境下如IDEA内嵌Jetty运行Spring项目时可能遇到的异常处理。 总的来说,这些内容涵盖了Spring的多个重要方面,包括事务管理、AOP、...
由于我无法访问外部文件或数据库,因此无法直接查看文件【地产杂谈系列之四:2021年新开工持续低迷之惑.pdf】的具体内容。但我可以根据您提供的【标题】、【描述】、【标签】和【部分内容】的信息来生成关于房地产...
集成过程通常涉及配置Servlet容器、Spring的web-context和数据访问层。 6. **AspectJ切入点语法**:Spring AOP支持AspectJ的切入点表达式,这使得精确控制通知(advice)的执行时机成为可能。切入点表达式语言允许...
1. OCI (Oracle Call Interface):这是Oracle数据库的主要编程接口,允许C和C++程序员访问数据库。通过OCI,开发者可以直接编写数据库操作代码,实现高效的数据处理。 2. ODBC (Open Database Connectivity):这是一...
标签“系统工具”表明这是一款与操作系统密切相关的实用程序,可能需要一定的系统权限来访问和处理注册信息。它并非特定于某个操作系统,而是作为一个通用的辅助工具存在,帮助用户管理他们的软件授权。 压缩包内的...
2. 提供ADO.NET接口,使开发者可以使用DataTable、DataSet、DataAdapter等.NET数据访问对象与MySQL交互。 3. 支持异步操作,利用.NET的async/await语法进行非阻塞数据库操作,提高应用性能。 4. 包含最新的MySQL协议...
在在线服装商店中,Spring作为服务层和数据访问层的容器,可以提供事务管理、AOP(面向切面编程)以及与数据库的交互。例如,通过Spring的IoC(控制反转)和DI(依赖注入)特性,我们可以方便地创建和配置业务服务,...
- 添加MySQL配置文件,设定目录访问权限。 - 运行mysql服务,设置root用户密码。 - 配置MySQL开机自动启动,并处理安装启动异常。 9. 签章服务器部署: - 此部分内容在文档中未详细展开,需根据实际需要与金格...
32.4 Gerrit 的数据库访问/ 462 32.5 立即注册为 Gerrit 管理员/ 464 32.6 管理员访问 SSH 的管理接口/ 467 32.7 创建新项目/ 468 32.8 从已有的 Git 库创建项目/ 472 32.9 定义评审工作流/ 473 32.10 Gerrit 评审...
数据结构是计算机科学中的核心课程,它研究如何有效地组织和存储数据,以便进行高效的访问和操作。C语言作为一种强大的系统编程语言,常被用来实现各种数据结构,因为它提供了底层内存管理和直接操作硬件的能力。 ...
为了有效地管理和维护日益复杂的IT环境,配置管理数据库(CMDB)应运而生。CMDB作为IT运维管理系统的核心组成部分,不仅连接了监控与运维管理,还提供了重要的数据支撑环境,对于实现运维管理至关重要。 **1.2 CMDB...