JDBC知识详解(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: JDBC(java database connectivity)驱动程序是对JDBC规范完整的实现,它的存在在JAVA程序与数据库系统之间建立了一条通信的渠道。

JDBC简介

JDBC通过一系列接口定义了访问数据库的通用API,不同的数据库厂商根据各自数据库的特点提供的对JDBC的实现(实现类包)。

JDBC基本原理

JDBC执行流程:

  • 连接数据源,如:数据库。
  • 为数据库传递查询和更新指令。
  • 处理数据库响应并返回的结果。

JDBC的架构

两层架构和三层架构

双层架构


作用:此架构中,Java Applet 或应用直接访问数据源。

条件:要求 Driver 能与访问的数据库交互。

机制:用户命令传给数据库或其他数据源,随之结果被返回。

部署:数据源可以在另一台机器上,用户通过网络连接,称为 C/S配置(可以是内联网或互联网)。

三层架构

该架构特殊之处在于,引入中间层服务。

流程:命令和结构都会经过该层。

吸引:可以增加企业数据的访问控制,以及多种类型的更新;另外,也可简化应用的部署,并在多数情况下有性能优势。

三层?

UI(表现层) :主要是与用户交互的界面,用户接受用户输入的数据和显示处理后用户需要的数据。

BLL(业务逻辑层):UI层和DAL层之间的桥梁。实现业务逻辑(验证,计算,业务规则等)。

DAL(数据访问层):与数据库打交道。主要实现对数据的增、删、改、查。将存储在数据库中的数据提交给业务层,同时将业务层处理的数据保存到数据库。(当然这些操作都是基于UI层的。用户的需求反映给界面(UI),UI反映给BLL,BLL反映给DAL,DAL进行数据的操作,操作后再一一返回,直到将用户所需数据反馈给用户).

Entity层

Entity(实体层):它不属于三层中的任何一层,但是它是必不可少的一层

Entity在三层架构中的作用:

  • 1、实现面向对象思想中的"封装";
  • 2、贯穿于三层,在三层之间传递数据;(注:确切的说实体层贯穿于三层之间,来连接三层)
  • 3、每一层(UI—>BLL—>DAL)之间的数据传递(单向)是靠变量或实体作为参数来传递的,这样就构造了三层之间的联系,完成了功能的实现。

三层与实体层之间的依赖关系:

两层与三层的区别

两层:

(当任何一个地方发生变化时,都需要重新开发整个系统。"多层"放在一层,分工不明确耦合度高——难以适应需求变化,可维护性低、可扩展性低)

三层:

(发生在哪一层的变化,只需更改该层,不需要更改整个系统。层次清晰,分工明确,每层之间耦合度低——提高了效率,适应需求变化,可维护性高,可扩展性高)。

综上,三层架构的优势:

  • 结构清晰、耦合度低
  • 可维护性高,可扩展性高
  • 利于开发任务同步进行, 容易适应需求变化

劣势:

  • 降低了系统的性能。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
  • 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的业务逻辑层和数据访问层中都增加相应的代码
  • 增加了代码量,增加了工作量

三层架构详解 | 菜鸟教程

JDBC使用步骤

  1. 导入jdbc操作
  2. 注册jdbc驱动
●   -参数:"驱动程序类名"(mysql,oracle等不同的驱动名)
●   -Class.forname("驱动程序类名")
//加载MySql驱动
Class.forName("com.mysql.jdbc.Driver")

获得Connection 对象

●  3个参数:URL,username,password连接数据库
String url="jdbc:mysql://127.0.0.1:3306/test";
String username="root";
String password="123456";
Connection conn= DriverManager.getConnection(url,username,password);

创建Statement()对象

用于执行SQL语句
execute() 可以执行任何SQL语句,但是常用于执行ddl,dcl语句
executeUpdate() 执行dml语句,如 insert,update delete
executeQuery() 执行DQL语句,如select
//创建 Statement
Statement st= conn.createStatement();
//执行DML语句
String dml="delete from k where age=24 ";
String dml ="delete from k"+" where age=26";

处理SQL执行结果:

● execute(DDL) 如果没有异常则成功。 
● executeUpdate(DML) 返回数字,表示更新的行数,抛出异常则失败。 
● executeQuery(DQL) 返回resultset(结果集)对象,代表二维查询结果,使用for遍历处理,如果查询失败抛出异常。
int b=st.executeUpdate(dml);

关闭数据连接

conn.close();


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
Java 关系型数据库 MySQL
JDBC知识【JDBC概述】第一章
JDBC知识【JDBC概述】第一章
|
SQL Java 关系型数据库
JDBC知识【JDBC API详解】第三章下篇
JDBC知识【JDBC API详解】第三章下篇
|
3月前
|
SQL Java 数据库连接
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
为何JDBC是Java开发者的“心头好”?原因竟然这么简单!
40 3
|
druid Java 数据库连接
JDBC知识【数据库连接池】第四章
JDBC知识【数据库连接池】第四章
|
SQL Java 关系型数据库
JDBC知识【JDBC快速入门】第二章
JDBC知识【JDBC快速入门】第二章
|
Java 数据库连接 数据库
JDBC知识【JDBC练习】第五章
JDBC知识【JDBC练习】第五章
|
SQL Java 关系型数据库
JDBC快速入门(二) JDBC各个类详解以及代码规范
JDBC快速入门(二) JDBC各个类详解以及代码规范
113 0
|
SQL Java 数据库连接
JDBC知识详解(二)
JDBC(java database connectivity)驱动程序是对JDBC规范完整的实现,它的存在在JAVA程序与数据库系统之间建立了一条通信的渠道。
86 1
|
SQL Oracle Java
JDBC知识详解(三)
JDBC(java database connectivity)驱动程序是对JDBC规范完整的实现,它的存在在JAVA程序与数据库系统之间建立了一条通信的渠道。
87 1
|
SQL Java 数据库连接
JDBC总述
JDBC总述