Java实现JDBC工具类DbUtils的抽取及程序实现数据库的增删改操作
封装DbUtils 工具类
不知道我们发现没有,不管是对数据库进行查询,还是标准的JDBC 步骤,其开端都是先实现JDBC 的加载注册,接着是获取数据库的连接,最后都是实现关闭连接,释放资源的操作。那我们何不直接把这些每次都重复书写的代码封装成一个工具类呢?
如图,在idea 中JDBC 包 下创建一个子包common,再在子包下创建一个名为 DbUtils 的java类。

DbUtils 类的完整代码如下:
public class DbUtils {/*** 创建新的数据库连接* @return 新的Connection对象* @throws SQLException* @throws ClassNotFoundException*/public static Connection getConnection() throws SQLException, ClassNotFoundException {//1. 加载并注册JDBC驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 创建数据库连接Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/imooc?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true", "root", "root");return conn;}/*** 关闭连接,释放资源* @param rs 结果集对象* @param stmt Statement对象* @param conn Connection对象*/public static void closeConnection(ResultSet rs , Statement stmt , Connection conn){try {if(rs != null){rs.close();}} catch (SQLException e) {e.printStackTrace();}try {if(stmt != null){stmt.close();}} catch (SQLException e) {e.printStackTrace();}try {if(conn != null && !conn.isClosed() ) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}
}
JDBC 实现insert、update、delete 操作
已经封装了DBUtils 类,在下面的开发中就能够简化程序开发
在 command 包下创建一个 InsertCommand 类 来实现Command接口 ,用于实现数据项的插入操作。

InsertCommand 类 完成代码如下:
public class InsertCommand implements Command{/*** 新增员工数据*/@Overridepublic void execute() {Scanner in = new Scanner(System.in);System.out.print("请输入员工编号:");int eno = in.nextInt();System.out.print("请输入员工姓名:");String ename = in.next();System.out.print("请输入员工薪资:");float salary = in.nextFloat();System.out.print("请输入隶属部门:");String dname = in.next();Connection conn = null;PreparedStatement pstmt=null;try {conn = DbUtils.getConnection();String sql = "insert into employee(eno,ename,salary,dname) value(?,?,?,?)";pstmt=conn.prepareStatement(sql);pstmt.setInt(1, eno);pstmt.setString(2, ename);pstmt.setFloat(3, salary);pstmt.setString(4,dname);int cnt = pstmt.executeUpdate();//所有写操作都使用executeUpdate,代表本次写操作所影响的记录数System.out.println("cnt:"+cnt);System.out.println(ename+"员工入职手续已办理");} catch (SQLException e) {e.printStackTrace();} catch (ClassNotFoundException e) {e.printStackTrace();}finally {DbUtils.closeConnection(null,pstmt,conn);}}
}
通过主程序的调用,运行交互结果如下:

以上实现了员工数据的插入(insert)。同理,其更新(update)和删除(delete)操作亦是如此,唯一变的就是 sql 语句 :
String sql = "update employee set salary=? where eno=?";//更新员工数据String sql = "delete from employee where eno = ?";//删除员工
相关文章:
Java实现JDBC工具类DbUtils的抽取及程序实现数据库的增删改操作
封装DbUtils 工具类 不知道我们发现没有,不管是对数据库进行查询,还是标准的JDBC 步骤,其开端都是先实现JDBC 的加载注册,接着是获取数据库的连接,最后都是实现关闭连接,释放资源的操作。那我们何不直接把…...
【docker】拉取镜像环境报错解决#ERROR: Get https://registry-1.docker.io/v2/
🍁博主简介 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录问题报错原因解决方法问题 ERROR…...
java中NumberFormat 、DecimalFormat的介绍及使用,java数字格式化,BigDecimal数字格式化
文章目录前言一、NumberFormat1、概述2、实例化方法3、货币格式化4、百分比格式化5、NumberFormat的坑5.1、不同的格式化对象处理相同数值返回结果不同问题源码分析:二、DecimalFormat1、概述2、常用方法3、字符及含义0与#的区别分组分隔符的使用“%” 将数字乘以10…...
2023什么是分销商城系统?营销,核心功能
大家好,我是你们熟悉而又陌生的好朋友梦龙,一个创业期的年轻人 分销商城是指由网络营销运营商提供的,用于协助供给商搭建、管理及运作其网络销售渠道,协助分销商获取货源渠道的平台。简单来说,就是企业应用无线裂变分…...
天翼数字生活C++客户端实习
面试C客户端实习的岗位,相对不难 面试官:实习主要做的是国产操作系统下的应用,主要做的是视频监控、安防相关的工具,具体就是一个叫做 天翼云眼的软件,目前在windows下和电视下都有对应的应用,就是现在想在…...
Java 接口
文章目录1、接口的概念2、接口的定义3、接口的使用4、接口和抽象类1、接口的概念 类是一种具体的实现体,而接口定义了一种规范(抽象方法),接口定义了某一批类所需要遵循的规范,接口不关心类内部的属性和方法的具体实现…...
【React】react-router 路由详解
🚩🚩🚩 💎个人主页: 阿选不出来 💨💨💨 💎个人简介: 一名大二在校生,学习方向前端,不定时更新自己学习道路上的一些笔记. 💨💨💨 💎目…...
DaVinci 偏好设置:系统 - 内存和 GPU
偏好设置 - 系统/内存和 GPUPreferences - System/Memory and GPU内存和 GPU Memory and GPU 选项卡提供了内存配置以及 GPU 配置的相关设置。内存配置Memory Configuration系统内存System Memory列出了所用电脑的总的可用内存。限制 Resolve 内存使用到Limit Resolve memory u…...
视频知识点(22)- 教你认清楚YUV420P和YUV420SP的真正差异在哪里
*《音视频开发》系列-总览* 前言 在视频技术领域,存在着非常多的颜色空间模型,YUV颜色空间就是其中之一。我们没有必要把所有的颜色空间都搞明白,只需要关注自己所从事的领域的常用颜色空间模型即可,同样,YUV颜色空间模型也有非常多的子类型,我们也没有必要都搞得清清楚楚…...
企业电子招标采购系统源码Spring Cloud + Spring Boot + MybatisPlus + Redis + Layui
项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…...
面试常问-Alpha测试和Beta测试
Alpha测试 Alpha测试是一种验收测试,在识别典型用户可能执行的任务并对其进行测试之前,执行该测试是为了识别所有可能的问题和错误。 尽可能简单地说,这种测试之所以被称为alpha,只是因为它是在软件开发的早期、接近开发结束时和…...
html理论基础
组织:中国互动出版网(http://www.china-pub.com/)RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)E-mail:ouyangchina-pub.com译者:黄俊(hujiao hj_c…...
【安卓开发】数据存储全方案--详解持久化技术
读书笔记系列:第一行代码 Android 6.1 持久化技术简介 三种数据持久化方式:文件存储、SharedPreference存储以及数据库存储,除此之外还可以存储在SD卡中(不安全) 6.2 文件存储 该方法不对存储的内容做格式化处理都…...
Vue项目实战
一、产品开发的大致流程 一般公司流程如下: 1、产品经理设计产品原型图 2、UI设计师设计符合需求的原型UI图 3、前端100%还原高保真UI设计图 4、后端设计接口 5、前后端接口联调 6、前后端功能自测 7、测试、运维进行产品的测试和上线 一般大型公司流程如下&…...
Github 学生优惠包 -- 最新防踩坑指南
Github学生优惠包的申请最近越来越麻烦,里面有非常多的坑,留下此文防止各位申请的时候踩到。 此文面向中国大陆真正有学生身份的同学!!! 文章目录前言1.用到的网址2.申请所需3.详细步骤4.踩坑点前言 记得在一年以前还…...
2023年美国大学生数学建模A题:受干旱影响的植物群落建模详解+模型代码(二)
前言 资源放CSDN上面过不了审核,都快结束了都没过审真的麻了,订阅专栏的同学直接加我微信直接发你。我只打造优质专栏。专注建模四年,博主参与过大大小小数十来次数学建模,理解各类模型原理以及每种模型的建模流程和各类题目分析方法。此专栏的目的就是为了让零基础快速使…...
第47章 后端管理首页与Axios拦截守卫原理
1 404全局拦截 1.1 定义布局页:src\views\ 404View.vue <template> <el-container> <el-main> </el-main> <el-footer> <h1>大人,你要找的页面离家出走了!小的正在努力寻找中…</h1> </el-fo…...
【前端】小程序开发入门:安装开发工具、目录结构与项目配置
文章目录前期准备目录结构app.jsonpageswindow其他前期准备 开发小程序要先申请一个对应的AppID:微信小程序 (qq.com) 微信官方小程序开发文档:微信开放文档 (qq.com) 然后安装一个小程序开发工具: 选择稳定版: 安装后打开&…...
Java反序列化漏洞——CommonsBeanutils1链分析
一、了解Apache Commons BeanutilsApache Commons Beanutils 是 Apache Commons 工具集下的另一个项目,它提供了对普通Java类对象(也称为JavaBean)的一些操作方法。在Java中,有很多class的定义都符合这样的规范若干private实例字段…...
三菱PLC的MC协议配置说明
三菱PLC的MC协议配置说明先说一下弱智的踩坑记录详细配置过程1、三菱Q02H CPUQJ71E71-100以太网模块设置MC协议1.1 PLC编程线连接与编程线驱动安装1.2 PLC通讯测试1.3 PLC MC协议设置1.4 PLC断点重启1.5 网络调试助手测试2、三菱Q03UDE CPU内置以太网设置MC协议2.1 PLC编程线连…...
从输入法到天气预测:一阶与高阶马尔科夫链的建模实战
1. 马尔科夫链:从输入法到天气预测的数学魔法 第一次听说马尔科夫链这个词时,我正盯着手机输入法发呆。当时在打"奥利奥"这个词,刚输入"ao"就自动联想出"奥利奥",而前一天我还在为打不出这个词抓耳…...
专业级反爬突破:实战解析开源Wenshu_Spider技术架构与完整解决方案
专业级反爬突破:实战解析开源Wenshu_Spider技术架构与完整解决方案 【免费下载链接】Wenshu_Spider :rainbow:Wenshu_Spider-Scrapy框架爬取中国裁判文书网案件数据(2019-1-9最新版) 项目地址: https://gitcode.com/gh_mirrors/wen/Wenshu_Spider 中国裁判文…...
快速原型:用快马ai一键生成openclaw在mac上的自动化安装脚本
最近在Mac上折腾OpenClaw这个开源工具时,发现它的安装过程对新手确实不太友好。作为一个经常需要快速验证工具可行性的开发者,我尝试用InsCode(快马)平台来生成自动化安装脚本,整个过程意外地顺畅。下面分享下我的实践心得: 环境检…...
KawaiiPhysics动画通知实战:AnimNotifyState与AnimNotify的完整应用指南
KawaiiPhysics动画通知实战:AnimNotifyState与AnimNotify的完整应用指南 【免费下载链接】KawaiiPhysics KawaiiPhysics : Simple Bone Physics for UnrealEngine 4 & 5 项目地址: https://gitcode.com/gh_mirrors/ka/KawaiiPhysics 在Unreal Engine开发…...
STM32F103C8T6用软件IIC驱动SGP30传感器,手把手教你搞定室内空气质量监测
STM32F103C8T6软件IIC驱动SGP30传感器实战指南 在智能家居和健康监测领域,空气质量检测正成为越来越受关注的技术方向。本文将带你从零开始,使用STM32F103C8T6这款性价比极高的MCU,通过软件模拟I2C接口驱动SGP30空气质量传感器,构…...
2026届最火的十大AI论文网站推荐榜单
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普AIGC检测系统,是维普平台针对学术论文,推出的,用于识…...
OpenClaw多任务队列管理:千问3.5-27B并行处理技巧
OpenClaw多任务队列管理:千问3.5-27B并行处理技巧 1. 为什么需要任务队列管理 上个月我尝试用OpenClaw自动处理200多份PDF文档的摘要生成任务,结果遭遇了典型的"暴力调度"问题——所有任务同时发起请求,导致千问3.5-27B模型实例直…...
5分钟快速上手BepInEx:Unity游戏插件开发的终极解决方案
5分钟快速上手BepInEx:Unity游戏插件开发的终极解决方案 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx(Bepis Injector Extensible)是…...
YOLO系列算法改进 | 主干改进篇 | 替换IdentityFormer恒等映射视觉Transformer网络 | 通过极简架构突破推理瓶颈,在移动端和边缘设备上实现精度与 | TPAMI 2024
0. 前言 本文介绍IdentityFormer恒等映射视觉Transformer网络,并将其集成到ultralytics最新发布的YOLO26目标检测算法中,替换原有Backbone网络。IdentityFormer是MetaFormer架构体系下的一个极致轻量化变体,通过采用恒等映射作为最基本的Token Mixer,首次证明了无需复杂的…...
OpenClaw自动化测试:Qwen3-14B驱动的代码审查机器人
OpenClaw自动化测试:Qwen3-14B驱动的代码审查机器人 1. 为什么需要自动化代码审查 去年参与一个开源项目时,我经常在深夜提交代码后收到维护者的评论:"这里有个拼写错误"、"那个变量命名不规范"。这种延迟反馈让我意识…...
