[Java Web]JDBC综合实践->Java操作MySQL数据库(一)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: [Java Web]JDBC综合实践->Java操作MySQL数据库

本文介绍JDBC的实践案例,是对JDBC的综合操作讲解(文中附有详细代码)

了解并熟悉JDBC,请看我的另一篇文章:

image.png

1、需求

需求:完成商品品牌数据的增删改查操作(增删改查)

       ①查询:查询所有数据

       ②添加:添加品牌

       ③修改:根据id修改

       ④删除:根据id删除

2、工程目录

最终完成后的工程目录如下:

       

2.1、工程目录说明

该工程下的JDBC模块存放此次实践案例的相关文件。

模块下创建了两个文件:lib和src。

       lib放的是需要的驱动jar包

       src放的是主要实现代码和Druid框架的配置文件druid.properties。

2.2、src文件

src下有两个二级包,分别为com.operation和com.sql。

       ①operation包下有两个类:分别是encapsulationTool封装工具类和operations操作类。

               encapsulationTool的内容是把表单信息添加进实体类,后续有详细说明

               operations是本次的主体,里面包含了所有本次需求的实现代码

       ②sql包下有两个类:分别是information表单信息类和sqlInitialForMySQL初始化

               information是MySQL中的commodity数据库中的information表的实体类

               sqlInitialForMySQL是将JDBC的八个步骤中一些相同的步骤提取出来单独成类来实现,

                       以达到简化代码量的效果

3、准备工作

3.1、⭐开启MySQL

本次的实践案例连接的是本地的MySQL数据库,所以要记得开启本地的MySQL服务。

如果不开启服务,所有的操作一律报错。

操作:

       win+R,cmd,按住Ctrl+Shift+Enter,以管理员模式打开终端。

       命令->开启:net start mysql

                 关闭:net stop mysql

3.2、数据初始化

接下来要先创建一个commodity商品类型的数据库,在该数据库中创建一个information表单来存储信息,在information表单中创建具体的表存储信息。如下:

information表中依次存放六种信息:

       id:唯一标识,使用主键约束(primary key),设置自动增长(auto_increment);

       brand:品牌名称

       company:公司名称

       sort:排序字段 (注:在本次实践案例中暂时没用上)

       description:描述信息

       status:状态信息,只有0和1两种,分别代表禁用、启用。 (注:在本次实践案例中暂时没用上)

3.3、导入驱动包

本次案例实践的驱动包一共有四个:

       druid-1.1.12.jar

       hamcrest-core-1.3.jar

       junit-4.13.1.jar

       mysql-connector-java-5.1.48.jar

将上述四个驱动包导入到lib文件夹,并添加到项目依赖中。

3.4、驱动包介绍

Druid和MySQL驱动包的解释,详细查看我的另一篇文章中的 "5、数据库连接池" :

image.png

junit驱动主要是用来编写单元测试类,代替实践案例中所需要的main方法。

如果不导入hamcrest驱动,使用junit的测试注解会出现问题:

3.5、回顾JDBC代码步骤

3.5.1、原先步骤

3.5.2、🔺🔺改进步骤

说明:

       在原来的JDBC八个步骤中,第一步导入jar包的操作,在一开始已经完成了;

       第二部注册驱动,在MySQL 5开始的驱动包中不需要手动注册,会自动扫描驱动

       第三步获取连接,原来的获取方式有造成资源浪费的明显缺点,所以由连接池代替

       第五步获取执行对象,存在SQL注入漏洞,所以由获取预编译执行对象代替

所以,改进完成之后的JDBC操作为十个步骤:

  1. 导入相关jar包
  2. 定义Druid的druid.properties配置文件
  3. 加载配置文件
  4. 获取连接池对象
  5. 获取连接
  6. 定义SQL
  7. 获取预编译SQL执行对象
  8. 执行SQL
  9. 处理结果
  10. 释放资源

4、代码实现

4.1、druid.properties

关于这个配置文件的书写,详细查看我另一篇文章中的 "5.3.2、定义配置文件":

image.png


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Java 关系型数据库 数据库连接
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
JDBC:Java与数据库的“黄金搭档”,为何它如此重要?
37 8
|
2月前
|
Java 数据库连接 API
JDBC:Java数据库连接的“黑科技”大揭秘
JDBC:Java数据库连接的“黑科技”大揭秘
33 7
|
21天前
|
存储 关系型数据库 MySQL
【Java面试题汇总】MySQL数据库篇(2023版)
聚簇索引和非聚簇索引、索引的底层数据结构、B树和B+树、MySQL为什么不用红黑树而用B+树、数据库引擎有哪些、InnoDB的MVCC、乐观锁和悲观锁、ACID、事务隔离级别、MySQL主从同步、MySQL调优
【Java面试题汇总】MySQL数据库篇(2023版)
|
18天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
23天前
|
JavaScript 前端开发 数据库
数据库测试场景实践总结
本文介绍了数据库超时和应用锁表SSDB测试场景的验证方法,通过锁定数据表模拟写入失败情况,并利用SSDB进行重试。测试需开发人员配合验证功能。同时,提供了SSDB服务器登录、查询队列数量及重启服务等常用命令。适用于验证和解决数据库写入问题。
22 7
|
2月前
|
SQL Java 关系型数据库
探索Java数据库连接的奥秘:JDBC技术全攻略
探索Java数据库连接的奥秘:JDBC技术全攻略
44 8
|
2月前
|
SQL Java 数据库连接
JDBC之旅:从陌生到熟悉的Java数据库连接之路
JDBC之旅:从陌生到熟悉的Java数据库连接之路
21 8
|
2月前
|
SQL Java 数据库连接
Java开发者必知:JDBC连接数据库的“三大法宝”
Java开发者必知:JDBC连接数据库的“三大法宝”
19 7
|
1月前
|
自然语言处理 算法 Java
Java如何判断两句话的相似度类型MySQL的match
【9月更文挑战第1天】Java如何判断两句话的相似度类型MySQL的match
20 2
|
22天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
下一篇
无影云桌面