Java Web的数据库操作之JDBC内容详解及实战

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: Java Web的数据库操作之JDBC内容详解及实战

前言


JDBC是Java程序与数据库通信的标准API 它定义在JDK的API中 通过JDBC技术 Java程序可以非常方便地与各种数据库交互 JDBC在Java程序与数据库系统之间架起了一座桥梁


JDBC由一组用Java语言编写的类和接口组成 它对数据库的操作提供了基本方法


一、JDBC连接数据库的过程


在了解了JDBC与数据库后 接下来介绍使用JDBC操作数据的开发流程 关键步骤如下


1:注册数据库驱动


连接数据库前 需要将数据库厂商提供的数据库驱动类注册到JDBC的驱动管理器中 通常情况下是通过将数据库驱动类加载到JVM来实现

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


2:构建数据库连接URL


要建立数据库连接 就要构建数据库连接的URL 不同数据库有所区别 但大体都是JDBC协议+IP地址+端口+数据库名称 如MySQL的如下

jdbc:mysql//localhost:3306/test;


3:获取Connection对象


在注册了数据库驱动以及构建数据库URL后 就可以通过驱动管理器获取数据库连接Connection 它是JDBC封装的数据库连接对象 只有创建此对象后 才可以对数据进行相关操作

DriverManager.getConnection(url,username,password);


完整的连接代码如下

try{
Class.forName("con.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/test";
String username="root";
String password="1111";
Connection conn=DriverManager.getConnection(url,username,password);
if(conn!=null){
out.printIn("连接成功");
conn.close();
}
else{
out.printIn("连接失败");
}
catch(ClassNotFoundException e){
e.printStackTrace();
}
catch(SQLException e){
e.printStackTrace();
}


二、JDBC API


学习JDBC需要掌握JDBC中的类和接口 也就是JDBC API


1.Connection接口


位于java.sql包中 是与特定数据库的连接会话


常用方法如下

close() 关闭释放资源

commit()提交事务

createstatement()创建一个对象


2.Statement接口


在创建了数据库连接之后  就可以通过程序来调用SQL语句对数据库进行操作 在Statement接口中封装了这些操作 Statement接口提供了执行语句和获取查询结构的基本方法


addBatch()用于批处理

boolean execute()执行sql语句

ResultSet execute()执行查询类型的SQL语句并返回对象


3:ResultSet接口


执行SQL语句的查询语句会返回查询的结果集 在JDBC API中使用ResultSet对象接受查询结果


三:对数据库进行增删改查


1:添加数据


可以使用insert实现插入数据的SQL语句 参数可以用占位符?代替 然后通过preparedStatement对其赋值并执行SQL

String sql="insert into 表(属性...)values(?,?,?..);
PreparedStatement ps=conn.prepareStatement(sql);
ps.setString();
ps.setDouble();


2:查询数据


执行查询数据操作后需要通过一个对象来装载查询结果 这个对象就是ResultSet对象 可以通过光标定位

String sql="select * from 表";
ResultSet rs=stmt.executeQuery(sql);


3:修改数据


修改数据用update实现

String sql="update 表 set 属性=值 where 属性=值";


4:删除数据


用delete关键字实现

String sql="delete from 表 where 属性=值";


5:批处理


当执行多条SQL语句时  每一条语句都要建立一个连接是非常麻烦的JDBC的批处理原理是将批量的SQL语句一次性发送到数据库中进行执行 从而解决多次与数据库连接的麻烦


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
18天前
|
移动开发 开发者 HTML5
构建响应式Web界面:Flexbox与Grid的实战应用
【10月更文挑战第22天】随着互联网的普及,用户对Web界面的要求越来越高,不仅需要美观,还要具备良好的响应性和兼容性。为了满足这些需求,Web开发者需要掌握一些高级的布局技术。Flexbox和Grid是现代Web布局的两大法宝,它们分别由CSS3和HTML5引入,能够帮助开发者构建出更加灵活和易于维护的响应式Web界面。本文将深入探讨Flexbox和Grid的实战应用,并通过具体实例来展示它们在构建响应式Web界面中的强大能力。
32 3
|
1月前
|
前端开发 JavaScript Python
Python Web应用中的WebSocket实战:前后端分离时代的实时数据交换
在前后端分离的Web应用开发模式中,如何实现前后端之间的实时数据交换成为了一个重要议题。传统的轮询或长轮询方式在实时性、资源消耗和服务器压力方面存在明显不足,而WebSocket技术的出现则为这一问题提供了优雅的解决方案。本文将通过实战案例,详细介绍如何在Python Web应用中运用WebSocket技术,实现前后端之间的实时数据交换。
69 0
|
13天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
96 44
|
15天前
|
SQL 关系型数据库 数据库
国产数据实战之docker部署MyWebSQL数据库管理工具
【10月更文挑战第23天】国产数据实战之docker部署MyWebSQL数据库管理工具
53 4
国产数据实战之docker部署MyWebSQL数据库管理工具
|
5天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
18 4
|
9天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
21 1
|
11天前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
29 1
|
1月前
|
SQL NoSQL 数据库
Cassandra数据库与Cql实战笔记
Cassandra数据库与Cql实战笔记
17 1
Cassandra数据库与Cql实战笔记
|
14天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
28 2
|
13天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
69 1