当前位置: 首页 > news >正文

Java实现JDBC工具类DbUtils的抽取及程序实现数据库的增删改操作

封装DbUtils 工具类

不知道我们发现没有,不管是对数据库进行查询,还是标准的JDBC 步骤,其开端都是先实现JDBC 的加载注册,接着是获取数据库的连接,最后都是实现关闭连接,释放资源的操作。那我们何不直接把这些每次都重复书写的代码封装成一个工具类呢?

如图,在idea 中JDBC 包 下创建一个子包common,再在子包下创建一个名为 DbUtils 的java类。

image-20230220134009353

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接口 ,用于实现数据项的插入操作。

image-20230220134903526

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);}}
}

通过主程序的调用,运行交互结果如下:

image-20230220142429226

以上实现了员工数据的插入(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 定义布局页&#xff1a;src\views\ 404View.vue <template> <el-container> <el-main> </el-main> <el-footer> <h1>大人&#xff0c;你要找的页面离家出走了&#xff01;小的正在努力寻找中…</h1> </el-fo…...

【前端】小程序开发入门:安装开发工具、目录结构与项目配置

文章目录前期准备目录结构app.jsonpageswindow其他前期准备 开发小程序要先申请一个对应的AppID&#xff1a;微信小程序 (qq.com) 微信官方小程序开发文档&#xff1a;微信开放文档 (qq.com) 然后安装一个小程序开发工具&#xff1a; 选择稳定版&#xff1a; 安装后打开&…...

Java反序列化漏洞——CommonsBeanutils1链分析

一、了解Apache Commons BeanutilsApache Commons Beanutils 是 Apache Commons 工具集下的另一个项目&#xff0c;它提供了对普通Java类对象&#xff08;也称为JavaBean&#xff09;的一些操作方法。在Java中&#xff0c;有很多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编程线连…...

Python基础复习总结

文章目录Python基础复习Python的下载与安装标识符关键字模块条件、循环语句if elif elsefor循环while循环成员测试Python中的数据类型序列列表 list元组 tuple集合 set字典 dictPython关系运算算术运算符比较运算符逻辑运算符位运算符赋值运算符运算符优先级字符串表示字符串字…...

【Linux操作系统】【综合实验五 网络管理与通信】

文章目录一、实验目的二、实验要求三、实验内容四、实验报告要求一、实验目的 要求了解和熟悉Linux网络客户/服务器管理模式&#xff08;client/server&#xff09;与网络环境的配置&#xff1b;熟悉网络远程登录模式与TCP/IP常见终端命令的使用&#xff1b;学会使用在线通信与…...

Qt下实现不规则形状窗口显示

文章目录前言一、资源文件的添加二、初始化窗口三、重写paintEvent函数实现窗口重绘四、重写QMouseEvent相关函数实现不规则窗口的移动及关闭五、demo完整代码六、下载链接总结前言 本文实现了Qt下显示两个不规则形状的窗口demo&#xff0c;其中有Qt的窗口对话框和QPaintEvent…...

使用ribbon实现负载均衡

1.新建两个provider&#xff1a;springcloud-provider-dept-8002 2. 配置跟8001一样 整合 Ribbon 由上述可知&#xff0c;Ribbon 是需要集成在消费端的 所以在消费端 &#xff1a; springcloud-03-consumer-dept-8082 进行修改 在 POM 文件中添加 Ribbon、Eureka 依赖 <!--…...

从页面仔到工程师,前端到底在发挥什么价值

玉伯在前端圈子里摸爬滚打十几年&#xff0c;他对前端价值的理解是什么样的&#xff1f;在他眼里&#xff0c;前端到底是一个怎样的岗位&#xff1f;我们带着这样的问题向他提问。支付宝体验技术部是前端同学最希望加入的团队之一&#xff0c;玉伯带领这个团队做出诸多创新产品…...

Java程序员进阶宝典,让你学习面试无忧!

心净则明,心诚则灵如果你想要一个月速成程序员&#xff0c;那么这篇文章不适合&#xff0c;如果你仅想要在IT圈“耍酷”&#xff0c;那你也不需要研读&#xff0c;如果你执着询问“退化”成为一名程序猿有啥捷径&#xff0c;那我只能告诉你&#xff0c;此路不通&#xff01;不可…...

Hadoop HDFS的主要架构与读写文件

一、Hadoop HDFS的架构 HDFS&#xff1a;Hadoop Distributed File System&#xff0c;分布式文件系统 &#xff11;&#xff0c;NameNode 存储文件的metadata&#xff0c;运行时所有数据都保存到内存&#xff0c;整个HDFS可存储的文件数受限于NameNode的内存大小一个Block在…...

面试题练习第五篇

面试题第五篇1. 说说React生命周期中有哪些坑&#xff1f;如何避免&#xff1f;2. 说说Real diff算法是怎么运作的&#xff1f;3. 调和阶段setState干了什么&#xff1f;4. 说说redux的实现原理是什么&#xff0c;写出核心代码&#xff1f;5. React合成事件的原理&#xff1f;6…...

hadoop02【尚硅谷】

HDFS 大数据学习笔记 一、HDFS产出背景及定义 HDFS产生背景 随着数据量越来越大&#xff0c;在一个操作系统存不下所有的数据&#xff0c;那么就分配到更多的操作系统管理的磁盘中&#xff0c;但是不方便管理和维护&#xff0c;迫切需要一种系统来管理多台机器上的文件&#x…...

Alist ——本地网盘管理器

Alist ——本地网盘管理器 一、下载工具 Alist https://github.com/alist-org/alist二、启动登录 进入下载好的文件中&#xff0c;在地址栏输入cmd进入命令行启动 进入命令行输入 alist start启动 记住密码&#xff0c;和端口进入浏览器 输入 &#xff1a;127.0.0.1:5244用…...

网站建设应当注意哪些问题/郑州见效果付费优化公司

做为一名运维工程师需要什么样的技能及素质呢&#xff0c;首先说说技能吧&#xff0c;如大家上面所看到&#xff0c;运维是一个集多IT工种技能与一身的岗位&#xff0c;对系统->网络 ->存储->协议->需求->开发->测试->安全等各环节都需要了解一些。 但对于…...

学校培训网站建设/树枝seo

请各位大侠帮忙看看&#xff0c;下面的编码有何问题&#xff1f;为何COOKIE不能保存&#xff1f;setCookie()老是返回FALSE。重新刷新网页&#xff0c;_COOKIE[counter]还是空值。本人使用apacheV2.2.8&#xff0c;PHPV5.2.6&#xff0c;WIN7。浏览...请各位大侠帮忙看看&#…...

关键词优化软件/武汉seo网站推广

考完了可以发题解了。 做法是link-cut tree维护子树信息&#xff0c;并不需要维护黑树白树那些的。 下面是一条重链&#xff1a; 如果4是根的话&#xff0c;那么在splay上是这样的&#xff1a; 在splay中&#xff0c;子树的信息都已经计算完毕&#xff0c;那么需要计算这个子树…...

做网站主页效果图/网站权重等级

SR-IOV特性&#xff1a;能减少宿主机的CPU使用率&#xff0c;需要物理网卡支持该功能&#xff0c;并且有的主板需要开启VT-d功能&#xff0c;有的主板有单独的开启开关&#xff0c;如下图Dell R630基础环境准备&#xff1a;物理网卡:intel I350 ,系统环境&#xff1a;centos7.5…...

网站首页代码怎么写/网站外链优化方法

概述 1、pageContext即页面上下文对象&#xff0c;表示当前页面运行环境&#xff0c;用以获取当前JSP页面的相关信息 2、pageContext对象作用范围为当前JSP页面 3、pageContext对象类型为javax.servlet.jsp.PageContext,pageContext对象可以访问当前JSP页面所有的内置对象&am…...

张雪峰谈广告学专业/seo是什么级别

现在经常要在网上查资料,查这个的时候,看到了另外一个新鲜的东西,结果想走迷宫一样,转来转去,等出来的时候发现早已远离了自己的主题.总结一点学习方法,供参考:1.先制定一个学习目标&#xff1b;2.针对该目标&#xff0c;提出10个关键问题&#xff1b;3.当在网上钻洞的时候&…...