数据库编程——intro to JDBC

【0】README

1) 本文文字描述 转自 core java volume 2 , 旨在理解 数据库编程——JDBC 的基础知识 ;
2)JDBC起源: 96年, Sun公司发布了 第一版的java 数据库连接(JDBC)API, 允许编程人员可以通过这个API 接口连接到 数据库,并使用结构化查询语言(即SQL)完成对数据库的查找与更新;


【1】JDBC 的设计(JDBC——Java DataBase Connection)

1)所有数据库供应商和工具开发商认为,如果java 能够为 SQL 访问提供一套纯 java API , 同时提供一个驱动管理器, 以允许第三方驱动程序可以连接到特定的数据库,那他将会非常有用;(干货——引入了驱动管理器)

  • 1.1)这样, 数据库供应商就可以提供自己的驱动程序,并插入到驱动管理器中。
  • 1.2)另外还需要一套简单机制,以使得第三方驱动程序可以向驱动管理器注册;

2) ODBC(Open DataBase Connection-开放数据库互连):这种接口组织方式遵循了 微软公司非常成功的 ODBC模式;ODBC 为C语言访问数据库提供了一套编程接口。 (干货——ODBC定义)
3)JDBC 和ODBC都基于同一个思想: 根据API编写的程序都可以与驱动管理器进行通信, 而驱动管理器则通过 驱动程序与实际的数据库进行通信; (干货——JDBC 和ODBC都基于同一个思想)


【2】 JDBC 驱动程序类型(JDBC driver program type)

1)JDBC规范将驱动程序归结为以下几类:

  • 1.1)第1类驱动程序: 将 JDBC 翻译为 ODBC, 然后使用一个 ODBC 驱动程序与数据库进行通信;如 JDBC/ODBC 桥, 但强烈不建议使用 JDBC/ODBC 桥; (干货——强烈不建议使用 JDBC/ODBC 桥)
  • 1.2)第2类驱动程序:是由部分 java 程序和部分本地代码组成的, 用于与数据库的客户端API 进行通信; 在使用驱动程序前,客户端不仅要安装java 类库, 还需要安装 一些与平台相关的代码;
  • 1.3)第3类驱动程序:是纯java 客户端类库, 它使用一种与具体数据库无关的协议将数据库请求发送给 server 构件, 然后该构件再将数据库请求翻译成数据库相关的协议, 这简化了部署, 因为平台相关的代码只 位于server 端了;
  • 1.4)第4类驱动程序:是纯java 类库, 它将JDBC 请求直接翻译成数据库相关的协议。

Attention)大部分数据库供应商都为它们的产品提供了 第3类 或 第4类 驱动程序;
Conclusion) JDBC 实现了以下目标: (干货——JDBC的目标)

  • C1)通过使用标准的SQL语句, 甚至是专门的 SQL扩展, 程序员就可以使用 java 语言开发访问数据库的应用, 同时还依旧遵守 java 语言的相关约定;
  • C2) 数据库供应商 和 数据库工具开发商可以提供底层的驱动程序, 因此,它们可以优化各自数据库产品的驱动程序;

【2】JDBC的典型用法

1)三层应用模式 (干货——三层应用模式)

  • 1.1)在三层应用模式中, 客户端不直接调用数据库,而是调用服务器上的中间件层,最后由中间件层完成数据库查询操作;
  • 1.2)这三层应用模式的优点如下(virtue):
    • V1) 它将可视化表示(位于客户端) 从业务逻辑(位于中间件)和原始数据(位于数据库)中分离出来;
    • V2)因此,我们可以从不同的客户端,如 java 应用, web 表单,来访问相同的数据和相同业务规则;
      这里写图片描述

2)客户端和中间层之间的通信通过 HTTP, 或诸如远程方法调用 RMI 这样的机制来完成。 (干货——引入 RMI技术)
3)JDBC 负责在中间层和后台数据库之间进行通信, 如图4-2所示。

  • 3.1)这模型有多种变体: 尤其是 java 企业版(java EE)为应用服务器定义了一种结构,用于管理称为 企业级 Java Bean (EJB)的代码模块, 并且提供了许多重要的服务; (干货——涉及到了EJB)
  • 3.2)JDBC 扮演了重要的角色: 即完成复杂的数据库查询;
    这里写图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java \t怎么从头开始_通过这些简单的步骤从头开始学习Java

java \t怎么从头开始Java是用于软件开发的最受欢迎的编程语言之一。 无论您的最终目标或技能水平如何,学习和掌握Java都将为您作为开发人员打开大门。 今天,我们将讨论一些原因,我们认为您应该开始学习Java,然后提供有关入门的深入…

HDFS 的dao

一、HDFS dao接口package cn.mk.dao;import java.io.FileNotFoundException; import java.io.IOException;import org.apache.hadoop.fs.BlockLocation; import org.apache.hadoop.fs.FileStatus;public interface HDFSDao {public boolean mkDirs(String path) throws IOExcep…

数据库编程——JDBC 配置

【0】README 1) 本文文字描述 转自 core java volume 2 , 旨在理解 数据库编程——JDBC 配置 的基础知识 ; 2) update timestamp: 1602022101; 更新内容有: 上传了一些图片, 而且举证说明了 为…

使用互联网了解的两个月里_我两个月来对Quarkus的了解

使用互联网了解的两个月里又一年,另一个来临,我很荣幸再次开启围绕Java,语言,生态系统和朋友的24篇精彩博客文章的统治,这些博客文章将我们所有人带入了今年最安静的假期。 这已经是第五年了(我只错过了201…

javah导出类的头文件抛出异常——java.lang.IllegalArgumentException: Not a valid class name(原因及解决方法)

【0】README 0.1) 本文旨在给出 java.lang.IllegalArgumentException 异常的原因 和 处理方法, 该异常和 javah 没有半毛钱关系 ; 0.2) 本文附带地给出了 javah 的作用 和 java 调用本地代码(如 C语言)的…

使用阿里巴巴json映射_使用JSON模式验证来映射稀疏JSON

使用阿里巴巴json映射在本文中,我们将探讨在创建和共享API时出现的问题。 特别是,需要: 表达数据的结构 提供对该数据的验证 允许将来改变主意 通过您拥有的部分数据与客户进行沟通 缺少数据时填写空白 人们通常使用版本编号的API解决此…

本地方法(JNI)——从java 程序中调用C函数

【0】README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法——从java 程序中调用C函数 的基础知识 ; 2) for source code, please visit https://github.com/pacosonTang/core-java-volume/tree/master/co…

Hadoop入门(一)概念与单机安装

一、hadoop的概念 (1)什么是大数据 大数据是不能用传统的计算技术处理的大型数据集的集合。它不是一个单一的技术或工具,而是涉及的业务和技术的许多领域。 (2)hadoop的定义 Hadoop是一个由Apache基金会所开发的分布式…

螺旋测微器 flash_使用测微计收集应用程序指标

螺旋测微器 flash什么是Micrometer? Micrometer是一个简单的外观,用于以供应商中立的方式收集Java应用程序中的指标。 您可以考虑使用SLF4J作为指标。 Micrometer内置了对许多不同指标后端的内置支持,包括Atlas,Datadog&#xff0…

java JNI调用C语言动态链接库(java.lang.UnsatisfiedLinkError: no yourClassName in java.library.path 异常的解决方法)

转自: http://watershitter.iteye.com/blog/477615今天花了至少3个小时跑这个java调c的动态链接库的Hello,native world的程序。 把所有犯的错误和要点总结一下! 1 java 中 c语言函数的声明 public native static void greeting(); //就像是接口声明一样…

Hadoop入门(二)集群安装

一、集群安装条件前置 在虚拟机上先准备一个机子 按用前面【安装单机hadoop】 已完成安装jdk,hadoop和ssh、网络等配置环境等。 虚拟机和操作系统 环境:ubuntu14 hadoop2.6jdk1.7ssh 虚拟机:(vmware10) 二、集群安装环境设置…

poj doubles_余数运算符在Java中用于Doubles

poj doubles我在OSU任教已近两年了,这总是令我惊讶,我从学生那里学到了多少。 例如,过去, 我让学生写一些我不理解的奇怪代码 。 在这一点上,即使经过300多个博客文章, 几个YouTube视频 ,甚至还…

面向对象与面向过程

一、面向过程编程 面向过程编程是一种以过程为中心的编程思想,分析出解决问题的步骤,然后用函数把这些步骤一步一步实现。面向过程编程,数据和对数据的操作是分离的。二、面向对象编程 面向对象编程是将事物对象化,通过对象通信来解决问题。面…

本地方法(JNI)——数值参数与返回值

【0】README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)——数值参数与返回值 的基础知识 ; 2) for source code, please visit https://github.com/pacosonTang/core-java…

class employe_Java 8 –集合sort()方法–按Employe对象(Id,名称,年龄)列出自定义排序示例

class employe有关在Java中对自定义对象进行排序的完整指南。 Collections.sort()方法基于Comparable或Comparator实现进行排序。 用于对Employee对象进行排序的示例自定义排序 1.简介 在本教程中,您将学习如何在java中对Custom对象进行排序…

Spring入门(一)之简介

一、Spring定义 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。 简单来说,Spring是一个分层的JavaSE/javaEE full-stack(全栈的) 轻量级开源框架。 二、Spring框架特征 (1&#xff…

本地方法(JNI)——访问域+字符串参数

【0】README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法(JNI)——访问域字符串参数 的基础知识 ; 2) for source code, please visit https://github.com/pacosonTang/core-java…

aws上负载均衡器标组端口_AWS CloudFormation:目标组没有关联的负载均衡器

aws上负载均衡器标组端口昨天,我使用AWS CloudFormation模板最终创建了ECS服务(Fargate类型),还创建了包括应用程序负载均衡器,目标组和IAM角色的资源。 创建堆栈时,出现以下错误: 具有target…

Spring入门(二)之下载与安装

一、Spring下载 参考其他博客:http://www.cnblogs.com/yjmyzz/p/3847364.html或http://blog.csdn.net/xinzhujin/article/details/54319043 Spring下载地址为:http://repo.spring.io/release/org/springframework/spring/ 二、压缩包下的SpringFramewo…

HttpClient 4 API –获取状态代码-getStatusLine()。getStatusCode()示例

在HttpClient API中获取状态代码的快速指南。 getStatusLine()。getStatusCode()示例和相关的错误。 1.简介 在这个非常快速的教程中,我将展示如何使用HttpClient 4获取和验证HTTP响应的StatusCode。 2. Maven依赖 要…