前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java+SQL做学生信息管理系统(增删改查)学生新作「建议收藏」

java+SQL做学生信息管理系统(增删改查)学生新作「建议收藏」

作者头像
全栈程序员站长
发布于 2022-09-27 02:52:40
发布于 2022-09-27 02:52:40
86700
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

java+SQL做学生信息管理系统(增删改查)

[过程中需要用到的所有工具数据库以及数据库管理器等等] https://pan.baidu.com/s/1j5cNKwslk8bCXSLoeCEgPQ 提取码:1234

大学学习java后做的第一个小项目忍不住分享一下,也是我自己的面向对象编程的实践作业啦,有点水,不是很优。废话不多数,下面进入正题

界面的编写是非常简单的,直接贴代码了,首先看添加功能

Add.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Add extends JFrame implements ActionListener{ 
   
	private static final Statement PraparedStatement = null;
 	Connection con;
 	
	JLabel id = new JLabel("Id");
	JLabel name = new JLabel("Name");
	JLabel sex = new JLabel("sex");
	JLabel tel = new JLabel("Tel");
	JLabel grade = new JLabel("Grade");
	JLabel address = new JLabel("Address");
	JLabel birthday = new JLabel("Birthday");
	
	JTextField id1 = new JTextField(10);
	JTextField name1 = new JTextField(10);
	JTextField sex1 = new JTextField(10);
	JTextField tel1 = new JTextField(10);
	JTextField grade1 = new JTextField(10);
	JTextField address1 = new JTextField(10);
	JTextField birthday1 = new JTextField(8);
	
	JButton yes = new JButton("确认");
	JButton no  = new JButton("取消");	
	
		public Add() { 
   
			setTitle("添加学生信息");
			setLayout(null);
			
			id.setBounds(100,90,100,50);
			id1.setBounds(300,100,200,30);
			name.setBounds(100,140,100,50);
			name1.setBounds(300,150,200,30);
			sex.setBounds(100,190,100,50);
			sex1.setBounds(300,200,200,30);
			tel.setBounds(100,240,100,50);
			tel1.setBounds(300,250,200,30);
			grade.setBounds(100, 290, 100, 50);
			grade1.setBounds(300, 300, 200, 30);
			address.setBounds(100, 340, 100, 50);
			address1.setBounds(300,350,200,30);
			birthday.setBounds(100, 390, 100, 50);
			birthday1.setBounds(300, 400, 200, 30);
			
			yes.setBounds(100,450, 100, 60);
			no.setBounds(400, 450, 100,60);
			
			add(id);
			add(id1);
			add(name);
			add(name1);
			add(sex);
			add(sex1);
			add(tel);
			add(tel1);
			add(grade);
			add(grade1);
			add(address);
			add(address1);
			add(birthday);
			add(birthday1);
			
			add(yes);
			add(no);
			
			yes.addActionListener(this);
			no.addActionListener(this);
			
			setVisible(true);
			setBounds(600,300,600,600);
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); 
		}
		public static void main(String args[]){ 
   
		new Add();
		}
		}

这就是执行以后的界面 下面就是按钮功能的实现,同时包含了数据库的操作

将下面的代码直接加在上面的代码的主函数上面就可以,这是上面的按钮的监听器方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
		public void actionPerformed(ActionEvent e) { 
   
					 
		 if(e.getSource()==yes) { 
   								//如果你点击的是确认按钮
			 String s1=id1.getText();   					//获取文本框中的信息
	    	 String s2=name1.getText(); 
	    	 String s3=sex1.getText();
	    	 String s4=tel1.getText();
	    	 String s5=grade1.getText();
	    	 String s6=address1.getText();
	    	 String s7=birthday1.getText();	 
	    	 
	    	 int  num  = Integer.parseInt(s7);					//将获得的日期转换为整数类型
	    	
	    	 //加载数据库驱动
		  	 try { 
   					
		    		  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDrive");
		    	  }
		    	  catch(Exception e1) { 
   
		    		  
		    	  }	    	
		    	 //连接数据库
		    		  String uri ="jdbc:sqlserver://172.16.8.54:1433;DatebaseName=Stu";			//ip改为自己的ip,“Stu”数据库中自己新建的数据库名
		    		  String user = "sa";															//sa为自己的数据库用户名
		    		  String password = "962464";											//自己的数据库密码
		    		 
					try { 
   
						con = DriverManager.getConnection(uri,user,password);
					} catch (SQLException e2) { 
   
						// TODO Auto-generated catch block
						e2.printStackTrace();
					}
		  
		    	 
		    	  JOptionPane.showMessageDialog(null, "数据库连接成功", "连接数据库",
		    			   JOptionPane.INFORMATION_MESSAGE);
		    	  			
			try { 
   
				if(init()==true) { 
   							//假如添加的id数据库中已经存在,则不添加
						JOptionPane.showMessageDialog(null, "数据库中此 Id 已存在,不可添加", "提示",
						JOptionPane.INFORMATION_MESSAGE);
						dispose();
					}
				else if(init()==false){ 
   					//如果没有,则执行添加
						String sql="insert into Students(Id,Name,Sex,Tel,Grade,Address,Birth)"+"values('"+s1+"','"+s2+"','"+s3+"','"+s4+"','"+s5+"','"+s6+"','"+num+"')";											//创建sql语句
						
						 Statement statement = null;
			
					try { 
   
						statement = con.createStatement();
					} catch (SQLException e2) { 
   
						e2.printStackTrace();
					}
						try { 
   
								int result = statement.executeUpdate(sql);				//执行sql语句
							} catch (SQLException e1) { 
   
								e1.printStackTrace();
							}
					    	 
							JOptionPane.showMessageDialog(null, "添加学生信息成功", "完成",
									   JOptionPane.INFORMATION_MESSAGE);
						dispose();
												
					}
			} catch (HeadlessException | SQLException e2) { 
   
				// TODO Auto-generated catch block
				e2.printStackTrace();
			}
			
			}
		 else if(e.getSource()==no) { 
   
				dispose();
		 }
			}

//判断添加的Id在数据库中是否存在的方法
		public boolean init() throws SQLException { 
   
			
			String sql1="select Id FROM Students where Id='"+s1+"'";	
			
			PreparedStatement pstm = con.prepareStatement(sql1);// 执行查询
			
			ResultSet rs = pstm.executeQuery();			
			
			boolean result = false;
			
			while(rs.next()) { 
   
				
				result = true;				
			}			
			rs = pstm.executeQuery();
			return result;
		}
	}

添加功能就完成了,大功告成

删除功能,界面百年不变,所以我就只写按钮监听器里面的方法了,直接写个界面加到里面就可以了。

删除功能是按照id删除,需要输入要删除的id 下面是执行删除功能的核心代码,数据库连接等代码都是恒定不变的,就不贴了,学编程绝对不能一味的Ctrl+c;Ctrl+v;一定要自己的思考,亲手敲一遍

Delete.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String sql="delete Students where Id ='"+s1+"'";
	    	  
	    	  Statement statement = null;
				
	    	  try { 
   
					statement = con.createStatement();
				} catch (SQLException e2) { 
   
					// TODO Auto-generated catch block
					e2.printStackTrace();
				}
		    try { 
   
			     
				 int resultset = statement.executeUpdate(sql);
			} catch (SQLException e1) { 
   
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}	    	  	    	   
		    
		    JOptionPane.showMessageDialog(null, "删除学生信息成功", "完成",
	    			   JOptionPane.INFORMATION_MESSAGE);
	    	  
					}	    
	    	  }catch (HeadlessException | SQLException e2) { 
   
					// TODO Auto-generated catch block
					e2.printStackTrace();
				}

更新功能

更新功能的实现,我用到了sql中if语句的拼接,从而实现,更新指定标签的内容

Update.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String sql = "update Students set Id = '"+s1+"'";   	    	 
            String sql1="where Id='"+s1+"'";
            
            
            
    		if(s2!= null&&!s2.equals("")) sql+=",Name ='"+s2+"'";
    				
    		if(s3!= null&&!s3.equals("")) sql +=",Sex ='"+s3+"'";	
    		
    		if(s4!= null&&!s4.equals("")) sql +=",Tel ='"+s4+"'"; 
    					 
    		if(s5!= null&&!s5.equals("")) sql += ",Grade ='"+s5+"'";
    						
    		if(s6!= null&&!s6.equals("")) sql +=",Address ='"+s6+"'";
    			 
    		if(s7!= null&&!s7.equals("")) sql +=",Birth ='"+s7+"'";
    		
       		String sql3= sql+sql1;
    		Statement statement=null;
    		try { 
   
				statement = con.createStatement();
			} catch (SQLException e2) { 
   
				e2.printStackTrace();
			}
    		try { 
   
				int result = statement.executeUpdate(sql3);
			} catch (SQLException e1) { 
   				
				e1.printStackTrace();
			}
    		
    		JOptionPane.showMessageDialog(null, "更新学生信息成功", "完成",
    				   JOptionPane.INFORMATION_MESSAGE);

查询功能

Select.java

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
String sql="select Id,Name,Sex,Tel,Grade,Address,Birth from Stu.Students where ID ='"+Select.id1.getText()+"'";		    	
PreparedStatement pstm = con.prepareStatement(sql);// 执行查询
ResultSet rs = pstm.executeQuery();
// 计算有多少条记录
int count = 0;
while(rs.next()){ 
   
count++;
}
rs=pstm.executeQuery();

查询还涉及到最后是用文本区显示还是使用表格显示,这个就需要自己设计了

一定要注意,代码中凡是涉及数据库名,和数据表名字的一定要改成自己的

好了,就分享到这里,欢迎留言,大家探讨。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/188675.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
tf43:tensorflow Serving gRPC 部署实例
版权声明:本文为博主原创文章,未经博主允许不得转载。有问题可以加微信:lp9628(注明CSDN)。 https://blog.csdn.net/u014365862/article/details/81009551
MachineLP
2019/05/26
2.6K1
构建并用 TensorFlow Serving 部署 Wide & Deep 模型
> 正文共6912个字,4张图,预计阅读时间18分钟。 Wide & Deep 模型是谷歌在 2016 年发表的论文中所提到的模型。在论文中,谷歌将 LR 模型与 深度神经网络 结合在一起作为 Google Play 的推荐获得了一定的效果。在这篇论文后,Youtube,美团等公司也进行了相应的尝试并公开了他们的工作(相关链接请看本文底部) 官方提供的 Wide & Deep 模型的(简称,WD 模型)教程 都是使用 TensorFlow (简称,TF )自带的函数来做的特征工程,并且模型也进行了封装,
用户1332428
2018/06/11
1.5K0
如何用TF Serving部署TensorFlow模型
如何将机器学习(ML)模型部署上线至生产环境已成为经常性的热门话题。为此许多公司和框架提出了各种不同的解决方案。
AI研习社
2019/05/08
3K0
如何用TF Serving部署TensorFlow模型
tensorflow踩坑合集2. TF Serving & gRPC 踩坑
这一章我们借着之前的NER的模型聊聊tensorflow serving,以及gRPC调用要注意的点。以下代码为了方便理解做了简化,完整代码详见Github-ChineseNER ,里面提供了训练好的包括bert_bilstm_crf, bilstm_crf_softlexcion,和CWS+NER多任务在内的4个模型,可以开箱即用。这里tensorflow模型用的是estimator框架,整个推理环节主要分成:模型export,warmup,serving, client request四步
风雨中的小七
2021/08/10
2.7K0
tensorflow踩坑合集2. TF Serving & gRPC 踩坑
精通 TensorFlow 1.x:11~15
TensorFlow 模型在开发环境中经过训练和验证。一旦发布,它们需要托管在某个地方,提供用工程师和软件工程师使用,以集成到各种应用中。 TensorFlow 为此提供了一个高表现服务器,称为 TensorFlow 服务。
ApacheCN_飞龙
2023/04/23
1.6K0
kubeflow系列(三):模型即服务,关于tensorflow serving的使用
kubeflow 中采用了 tensorflow serving 作为官方的tensorflow模型接口, TensorFlow Serving是GOOGLE开源的一个服务系统,适用于部署机器学习模型,灵活、性能高、可用于生产环境。 TensorFlow Serving可以轻松部署新算法和实验,同时保持相同的服务器架构和API。
机械视角
2020/02/11
1.8K0
tensoflow serving 实战之GAN 识别门牌号的识别服务接口
TensorFlow服务,托管模型并提供远程访问。TensorFlow服务有一个很好的文档的架构和有用的教程。不幸的是,这个有点难用,你需要做较大改动来为自己的模型提供服务。
十四君
2019/11/27
6330
模型蒸馏-学习笔记
知识蒸馏(Knowledge Distillation)最早是Hinton 2014年在论文Dislillation the Knowledge in a Neural Network中提出的概念,主要思想是通过教师模型(teacher)来指导学生模型(student)的训练,将复杂、学习能力强的教师模型学到的特征表示“知识蒸馏”出来,传递给参数小、学习能力弱的学生模型,从而得到一个速度快、表达能力强的学生模型。
Johns
2022/04/26
8.7K0
模型蒸馏-学习笔记
Tensorflow SavedModel模型的保存与加载
这两天搜索了不少关于Tensorflow模型保存与加载的资料,发现很多资料都是关于checkpoints模型格式的,而最新的SavedModel模型格式则资料较少,为此总结一下TensorFlow如何保存SavedModel模型,并加载之。
云水木石
2019/07/02
5.6K0
Tensorflow笔记:通过tf.Serving+Docker部署
很多时候仅仅是线下跑一个模型,对特定一批数据进行预测并不够,需要随时来一个或几个样本都能输出结果。这时候就需要起一个服务,然后随时一个包含数据的请求过来,就返回相应的结果。架起这个服务的过程就称作“部署”。本文主要介绍通过tf.Serving+Docker来部署tensorflow模型的过程。
共产主义搬砖人
2021/09/24
2.4K0
Kubernetes 环境的 Tensorflow Serving on S3
在 Tensorflow 给的官方例子中 Use TensorFlow Serving with Kubernetes,是将模型拷贝到镜像里的,这里是会有点不太灵活,因为更新模型就要重新构建镜像,并且再去更新对应的 Pod。
runzhliu
2020/08/06
1.1K0
【tensorflow2.0】使用tensorflow-serving部署模型
TensorFlow训练好的模型以tensorflow原生方式保存成protobuf文件后可以用许多方式部署运行。
西西嘛呦
2020/08/26
1.8K0
用Docker部署TensorFlow Serving服务
参考: https://tf.wiki/zh_hans/deployment/serving.html# https://tensorflow.google.cn/tfx/serving/docker
Michael阿明
2021/02/19
5550
用Docker部署TensorFlow Serving服务
部署深度学习模型到服务器
当我们历尽千辛万苦,终于训练出来一个模型时,想不想将这个模型发布出去,让更多人的受益?
羽翰尘
2019/11/20
3.6K0
tensorflow机器学习模型的跨平台上线
    在用PMML实现机器学习模型的跨平台上线中,我们讨论了使用PMML文件来实现跨平台模型上线的方法,这个方法当然也适用于tensorflow生成的模型,但是由于tensorflow模型往往较大,使用无法优化的PMML文件大多数时候很笨拙,因此本文我们专门讨论下tensorflow机器学习模型的跨平台上线的方法。
刘建平Pinard
2018/08/07
1.3K0
使用tensorflow-serving部署模型
TensorFlow训练好的模型以tensorflow原生方式保存成protobuf文件后可以用许多方式部署运行。
lyhue1991
2020/07/20
1.4K0
使用tensorflow-serving部署模型
当微信小程序遇上TensorFlow:接收base64编码图像数据
这是当微信小程序遇上TensorFlow系列文章的第四篇文章,阅读本文,你将了解到:
云水木石
2019/07/01
1.1K0
深度学习算法优化系列五 | 使用TensorFlow-Lite对LeNet进行训练后量化
在深度学习算法优化系列三 | Google CVPR2018 int8量化算法 这篇推文中已经详细介绍了Google提出的Min-Max量化方式,关于原理这一小节就不再赘述了,感兴趣的去看一下那篇推文即可。今天主要是利用tflite来跑一下这个量化算法,量化一个最简单的LeNet-5模型来说明一下量化的有效性。tflite全称为TensorFlow Lite,是一种用于设备端推断的开源深度学习框架。中文官方地址我放附录了,我们理解为这个框架可以把我们用tensorflow训练出来的模型转换到移动端进行部署即可,在这个转换过程中就可以自动调用算法执行模型剪枝,模型量化了。由于我并不熟悉将tflite模型放到Android端进行测试的过程,所以我将tflite模型直接在PC上进行了测试(包括精度,速度,模型大小)。
BBuf
2020/01/21
1.7K0
深度学习算法优化系列五 | 使用TensorFlow-Lite对LeNet进行训练后量化
如何查看Tensorflow SavedModel格式模型的信息
在《Tensorflow SavedModel模型的保存与加载》一文中,我们谈到SavedModel格式的优点是与语言无关、容易部署和加载。那问题来了,如果别人发布了一个SavedModel模型,我们该如何去了解这个模型,如何去加载和使用这个模型呢?
云水木石
2019/07/02
2.7K0
如何查看Tensorflow SavedModel格式模型的信息
TensorFlow Serving
TensorFlow Serving[1] 可以快速部署 Tensorflow 模型,上线 gRPC 或 REST API。
GoCoding
2021/05/06
5880
TensorFlow Serving
推荐阅读
相关推荐
tf43:tensorflow Serving gRPC 部署实例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档