《JavaWeb篇》02.JDBC看这一篇就够了(一)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 《JavaWeb篇》02.JDBC看这一篇就够了(一)

1,JDBC概述


在开发中我们使用的是java语言,那么势必要通过java语言操作数据库中的数据。

这就是接下来要学习的JDBC。


1.1 JDBC概念

JDBC 就是使用Java语言操作关系型数据库的一套API


全称:( Java DataBase Connectivity ) Java 数据库连接


image.png


我们开发的同一套Java代码是无法操作不同的关系型数据库,因为每一个关系型数据库的底层实现细节都不一样。如果这样,问题就很大了,在公司中可以在开发阶段使用的是MySQL数据库,而上线时公司最终选用oracle数据库,我们就需要对代码进行大批量修改,这显然并不是我们想看到的。我们要做到的是同一套Java代码操作不同的关系型数据库,而此时sun公司就指定了一套标准接口(JDBC),JDBC中定义了所有操作关系型数据库的规则。众所周知接口是无法直接使用的,我们需要使用接口的实现类,而这套实现类(称之为:驱动)就由各自的数据库厂商给出。


1.2 JDBC本质

官方(sun公司)定义的一套操作所有关系型数据库的规则,即接口

各个数据库厂商去实现这套接口,提供数据库驱动jar包

我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类

1.3 JDBC好处

各数据库厂商使用相同的接口,Java代码不需要针对不同数据库分别开发

可随时替换底层数据库,访问数据库的Java代码基本不变

以后编写操作数据库的代码只需要面向JDBC(接口),操作哪儿个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要再项目中导入MySQL数据库的驱动包。如下图就是MySQL驱动包


image.png


2,JDBC快速入门


先来看看通过Java操作数据库的流程


image.png

第一步:编写Java代码


第二步:Java代码将SQL发送到MySQL服务端


第三步:MySQL服务端接收到SQL语句并执行该SQL语句


第四步:将SQL语句执行的结果返回给Java代码


2.1 编写代码步骤

创建工程,导入驱动jar包(资料里都有,或者网站搜索Maven Repository,在搜索Mysql)


image.png

注册驱动

Class.forName("com.mysql.jdbc.Driver");


获取连接


Connection conn = DriverManager.getConnection(url, username, password);


Java代码需要发送SQL给MySQL服务端,就需要先建立连接


定义SQL语句


String sql =  “update…” ;


获取执行SQL对象


执行SQL语句需要SQL执行对象,而这个执行对象就是Statement对象


Statement stmt = conn.createStatement();


执行SQL


stmt.executeUpdate(sql);


处理返回结果


释放资源


2.2 具体操作

创建新的空的项目


image.png

定义项目的名称,并指定位置


image.png

对项目进行设置,JDK版本、编译版本

image.png


创建模块,指定模块的名称及位置


image.png

导入驱动包


将mysql的驱动包放在模块下的lib目录(随意命名)下,并将该jar包添加为库文件


image.png


在添加为库文件的时候,有如下三个选项

Global Library : 全局有效

Project Library : 项目有效

Module Library : 模块有效

image.png


在src下创建类

image.png


编写代码如下

/**
 * JDBC快速入门
 */
public class JDBCDemo {
    public static void main(String[] args) throws Exception {
        //1. 注册驱动
        //Class.forName("com.mysql.jdbc.Driver");
        //2. 获取连接
        String url = "jdbc:mysql://127.0.0.1:3306/db1";
        String username = "root";
        String password = "1234";
        Connection conn = DriverManager.getConnection(url, username, password);
        //3. 定义sql
        String sql = "update account set money = 2000 where id = 1";
        //4. 获取执行sql的对象 Statement
        Statement stmt = conn.createStatement();
        //5. 执行sql
        int count = stmt.executeUpdate(sql);//受影响的行数
        //6. 处理结果
        System.out.println(count);
        //7. 释放资源
        stmt.close();
        conn.close();
    }
}
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
11月前
|
运维 Linux Apache
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
Puppet 作为一款强大的自动化运维工具,被广泛应用于配置管理领域。通过定义资源的状态和关系,Puppet 能够确保系统始终处于期望的配置状态。
338 3
|
7月前
|
自然语言处理 安全 搜索推荐
阿里通义等提出Chronos:慢思考RAG技术助力新闻时间线总结
在数字化时代,新闻信息的指数级增长使得从海量文本中提取和整理历史事件的时间线变得至关重要。为了应对这一挑战,阿里巴巴通义实验室与上海交通大学的中断者提出了一种基于Agent的新闻时间线摘要新框架——CH RONOS,源自希腊神话中的时间之神柯罗诺斯,该框架通过迭代多轮的自我提问方式,结合检索增强生成技术,从互联网上检索相关事件信息,并生成时间顺序的新闻摘要,为新闻时间线摘要生成提供了一种全新的解决方案。
329 44
|
存储 关系型数据库 MySQL
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)(上)
Java数据库部分(MySQL+JDBC)(一、MySQL超详细学习笔记)
376 4
|
12月前
|
开发框架 数据可视化 Java
iOS开发-SwiftUI简介
iOS开发-SwiftUI简介
|
7月前
|
存储 算法 测试技术
CodeFuse-AAIS:改进低智能体框架助力高效程序修复
本文提出了一种基于低智能体框架的自适应自动化程序修复(APR)解决方案——AAIS。该方案结合了智能体的自适应性和低智能体的高效控制流,通过引入交互式缺陷定位和多模型辅助生成,显著提升了程序修复的准确性和多样性。实验结果表明,AAIS在SWE-Bench基准测试中表现出色,函数级定位准确率提升了46.94%-113.32%,Issue Solving任务上达到了35.67%的性能,展示了其在未来软件开发中的应用潜力。
173 0
CodeFuse-AAIS:改进低智能体框架助力高效程序修复
|
监控 安全 网络安全
|
人工智能
快来围观!我自制的 AI 周报小能手:自动收集整理周报,一键发送邮件
快来围观!我自制的 AI 周报小能手:自动收集整理周报,一键发送邮件
344 0
|
缓存 NoSQL Java
redis 6.0新特性-客户端缓存学习总结
redis 6.0新特性-客户端缓存学习总结
490 0
|
传感器 C语言 芯片
【STM32】I2C协议完成温湿度检测
I2C总线是英国的菲利普公司在八十年代初期退出来的一种串行的、半双工的总线,主要是用于一些近距离、低速的芯片之间的通信;I2C总线有两根双向的信号线,一根SDA用于收发数据、一根时钟线SCL用于通信双方时钟的同步。
【STM32】I2C协议完成温湿度检测
|
前端开发 小程序 定位技术
Mac上抓包秒通关🐑羊了个羊🐑
前言 看网上大部分是 Windows 微信小游戏的抓包教程通关文章,因为Mac微信不支持小游戏(尴尬了。) 对于真机抓包的话,高版本Android配置CA太麻烦(Root),相信 大部分都是10左右的安卓 手里只有台Mac,那咱就直接用 Mac 配安卓模拟器搞定抓包(Whistle + MuMu) PS:文末有最终演示视频,看效果直接跳文末