Java连接MySQL对数据实现增删改查

news2024/12/24 19:27:39

在实现好的窗口实现 添加修改删除查询数据的方法

以如下数据实验
在这里插入图片描述

statement自带的函数使用说明
execute (SQL)执行给定的SQL语句返回一个或多个结果结果集 execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程 或动态执行未知 SQL 字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况
executeUpdate(SQL)执行给定的SQL语句 返回一个结果集 resultset, 用于执行 执行update,insert,delete语句 ,它返回的是语句执行后说影响到的记录条数(int)
executeQuery(SQL)主要用于执行select语句,返回一个resultset对象

定义几个对象

	Connection con;
	Statement st;
	ResultSet res=null;
	Connect ct=new Connect();

先在类里面定义好用法直接调用传入参数即可
这里是把 execute executeUpdate executeQuery 封装起来用

//执行创建数据表、插入数据等操作
 public void execute(String sql) {
	 st = null; res = null;
	 try {
		 st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
		 														//这里参数固定格式,想了解的话自行百度
		 st.execute(sql);   
	 }catch(SQLException e) {
		 System.err.println(e.getMessage());
	 }
 }
//执行数据查询的方法  执行select 语句 返回值resultset结果集
 public ResultSet executeQuery(String sql) throws Exception{
	 Open();
	 st = null; res = null;
	 try {
		 st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
		 res = st.executeQuery(sql);  //核心是调用
	 }catch(SQLException e) {
		 System.err.println("查询数据:"+e.getMessage());
	 }
	 return res;
 }
 
 //更新数据库操作方法 可以执行insert  update delete 返回结果为影响数据库的行数
 public void executeUpdate(String sql) {
	 st = null; res = null;
	 try {
		 st = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
		 st.executeUpdate(sql);
		 con.setAutoCommit(false);
		 con.commit();//提交
	 }catch(SQLException e) {
		 System.err.println("更新数据"+e.getMessage());
	 }
 }

数据的增删改查

思路:①连接数据库②实现SQL语句 ③调用上面的方法函数,

添加数据

//添加数据
	public void tianjia(String id,String  name,String score) {
		
		try {
			ct.Open();
			String sql = "insert into student(id,name,score) values(" +id+",'"+name+"',"+score+")";
			ct.executeUpdate(sql);
			
			//new Connect().close();
			
		}catch(Exception e) {
			System.err.println(e.getMessage());
		}

	}	

点击添加如图所示数据,在更新数据库页面或者点击系统管理的刷新
在这里插入图片描述
在这里插入图片描述

修改数据

//更新数据
	public void xiugai(String id ,String name,String score){ //在文本框里获取到是String类型
		
		try {
			ct.Open(); //必须先连接数据库
			//mysql 语句使用的时候需要注意的是 字符类型的参数怎么写 ???
			// updata student set name='name',score=score where id=id 这是原本的语句varchar 需要加 ‘’
			String sql = "update student set name =" +" '"+ name +"' "+ ",score = " + score + " where id = " +Integer.parseInt(id);
			ct.executeUpdate(sql);
			
			//new Connect().close();
		}catch(Exception e) {
			System.err.println(e.getMessage());
		}
	
	}

输入如下数据点击修改:
在这里插入图片描述
在这里插入图片描述

删除数据

输入学号(这里是按学号删除)之后点击删除按钮

//删除数据  获取按学号唯一删除
	public void shanchu(String id){
		
		try{
			ct.Open(); 
			
			String sql = "delete from student where id="+Integer.parseInt(id);
			
			ct.executeUpdate(sql);
			
			//new Connect().close();
		}catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
			System.err.println(e.getMessage());
		}
	
	}

查数据

输入学号点击查询

public  ResultSet chazhao(String id){
		
		try {
			//这里查找的内容可以随便改
			res=null;
			String SQL="select * from student where id="+id;
			res=ct.executeQuery(SQL);
			
			//ct.close();
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		
		return res;
	}

点击这里查看实现完整管理界面
还有按栏目排名功能哟~~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/661234.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Verilog | 基4 booth乘法器

上接乘法器介绍 原理 跟基2的算法一样,假设A和B是乘数和被乘数,且有: A ( a 2 n 1 a 2 n ) a 2 n − 1 a 2 n − 2 … a 1 a 0 ( a − 1 ) B b 2 n − 1 b 2 n − 2 … b 1 b 0 \begin{align}A&(a_{2n1}a_{2n})a_{2n−1}a_{2n−2}……

安卓期末考试知识总结(3)

文章目录 第五章 数据存储文件存储(非重点)内部存储获取或者打开目录操作文件 外部存储区 SharedPreferences存储写入Shared Preferences读取数据 SQLite数据库SQLite数据库的创建操作数据库数据Curosr数据库的事务 第五章 数据存储 简述Android数据存储的方式 Android平台提供…

FreeRTOS:任务通知

目录 一、任务通知简介二、发送任务通知2.1 函数xTaskNotify()2.2函数xTaskNotifyFromISR()2.3函数xTaskNotifyGive()2.4函数vTaskNotifyGiveFromISR()2.5函数xTaskNotifyAndQuery()2.6函数xTaskNotifyAndQueryFromISR() 三、获取任务通知3.1函数ulTaskNotifyTake()3.2函数xTas…

[进阶]Java:打印流、Properties、common-io框架

打印流: 作用:打印流可以实现方便、高效的打印数据到文件中去。打印流一般是:PrintStream,PrintWriter两个类。可以实现打印什么数据就是什么数据,例如打印整数97写出去就是97,打印boolean的true&#xff…

chatgpt赋能python:Python截取某段文字的方法

Python截取某段文字的方法 在处理文本数据时,截取某段文字是常见需求。Python作为一门优秀的脚本语言,提供了多种方法来完成这个任务。本篇文章将介绍Python截取某段文字的几种方便易用的方法。 方法一:使用切片 Python中的切片操作可以方…

JavaScript的一些编程题分享

将字符串abc-def-ghi转换为驼峰格式 这里我们的思路是利用字符串方法和正则表达式 const str abc-def-ghi;const camelCaseStr str.replace(/[-_][^-_]/g, match > match.charAt(1).toUpperCase());console.log(camelCaseStr); // abcDefGhi 这里使用了 replace 方法&a…

haproxy

haproxy haproxy一:常见的Web集群调度器1.软件2.硬件3.LVS ,Nginx ,Haproxy 的区别: 二:Haproxy应用分析1.HAProxy的主要特性有:2.HAProxy负载均衡策略非常多,常见的有如下8种: 三&a…

MySQL8.0数据库开窗函数

简介 数据库开窗函数是一种在SQL中使用的函数,它可以用来对结果集中的数据进行分组和排序,以便更好地分析和处理数据。开窗函数与聚合函数不同,它不会将多行数据聚合成一行,而是保留每一行数据,并对其进行分组和排序。…

Linux中/dev/random和/dev/urandom的作用

1./dev/random和/dev/urandom介绍 在Linux环境中,我们会用到/dev/random和/dev/urandom,今天为大家讲讲/dev/random和/dev/urandom的作用以及使用场景。 1.1./dev/random介绍 /dev/random是一个特殊的字符设备文件,用于生成“高质量”的随…

Python面向对象编程1-面向过程的简单纸牌游戏程序 项目1.1 定义纸牌的花色和点数

总项目目标:用面向过程思想设计一个简单的纸牌游戏程序,称为"Higher or Lower"(高还是低)。游戏中,玩家需要猜测接下来的一张牌是比当前牌高还是低。根据猜测的准确性,玩家可以得到或失去相应的积…

Unity UGUI1——基础组件概述

一、UGUI 介绍 ​ UGUI 是 Unity 引擎内自带的 UI 系统,官方称之为:Unity UI ​ 是目前 Unity 商业游戏开发中使用最广泛的 UI 系统开发解决方案 ​ 它是基于 Unity 游戏对象的 UI 系统,只能用来做游戏 UI 功能 ​ 不能用于开发 Unity 编…

【MarkDown】CSDN Markdown之Git图gitGraph详解

Git图 Git图是对不同分支上的Git提交和Git操作(命令)的图形化表示。 这种类型的图特别适合开发人员和DevOps团队分享他们的Git分支策略。例如,它可以更容易地可视化git流的工作方式。 Mermaid可以呈现Git图,但是只有v10.2.3 才支持。 代码…

kubernets 笔记

kubernets 笔记 kubernets 安装 1. 环境准备 硬件要求 内存:2GBCPU:2 核硬盘:30GB 本次环境说明 操作系统:CentOS 7.9内核版本:3.10.0-1160.76.1.el7.x86_64k8s-m:192.168.222.3k8s-s01:192.…

安装Apache、MySQL、PHP、论坛实操

文章目录 一、安装Apache1、准备阶段2、开始安装3、浏览器访问验证 二、部署MySQL三、部署php四、部署BBS论坛 一、安装Apache 1、准备阶段 (1)准备源码包 httpd-2.4.29.tar.gz apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz cd /opt tar xf apr-1.6.2.tar…

【Windows】创建Windows远程桌面快捷方式

【Windows】创建Windows远程桌面快捷方式 1、背景2、操作 1、背景 windows系统自带了远程连接工具,可以实现局域网内的远程控制,参考: 【Windows】局域网内远程桌面控制 https://blog.csdn.net/jn10010537/article/details/130926888 但是w…

【Leetcode -404.左子叶之和 -543.二叉树的直径】

Leetcode Leetcode -404.左子叶之和Leetcode -543.二叉树的直径 Leetcode -404.左子叶之和 题目:给定二叉树的根节点 root ,返回所有左叶子之和。 示例 1: 输入: root [3, 9, 20, null, null, 15, 7] 输出 : 24 解释 : 在这个二叉树中&…

vue三部曲

vue初入 简介 ​ vue生于2014年 Vue等框架与jQuery的区别 ​ jQuery是基于操作dom的库 ​ Vue框架是以数据驱动和组件化开发为核心 留坑、引包、实例化、插值表达式{{}} ​ vue第一个简单案例练习图。 引包 ​ 使用cnpm install vue2下载vue2(version下载指…

ansible的剧本

一、playbooks 概述以及实例操作 1、playbooks 的组成 playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables&#xff1…

数据挖掘工程师岗位的工作职责

数据挖掘工程师岗位的工作职责1 职责: 1.负责数据分析,数据挖掘相关的算法、应用的设计与开发; 2.负责公司产品各阶段数据的整理、分析、挖掘及提交数据报告,重点对车辆行为数据进行分析和挖掘,利用数据分析结论推动业务产品的优化; 3.对海量…

python---列表和元组(3)

列表元素的遍历 遍历往往搭配循环 for循环进行遍历 for循环搭配下标的形式 这个可以修改列表中的数值 上述两个代码的区别 通过下标的方式进行赋值才会修改自身 使用while循环遍历 元素的插入操作 使用append往列表末尾来新增元素 使用insert进行插入 列表的查找##…