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

java+SQL做学生信息管理系统(增删改查)学生新作「建议收藏」java+SQL做学生信息管理系统(增删改查)过程中需要用到的所有工具数据库以及数据库管理器等等密码:q80t大学学习java后做的第一个小项目忍不住分享一下,也是我自己的面向对象编程的实践作业啦,有点水,不是很优。废话不多数,下面进入正题界面的编写是非常简单的,直接贴代码了,首先看添加功能Add.javaimportjavax.swing.*;importjava.awt.*…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

[过程中需要用到的所有工具数据库以及数据库管理器等等]
https://pan.baidu.com/s/1j5cNKwslk8bCXSLoeCEgPQ
提取码:1234
在这里插入图片描述
大学学习java后做的第一个小项目忍不住分享一下,也是我自己的面向对象编程的实践作业啦,有点水,不是很优。废话不多数,下面进入正题

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

Add.java

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

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

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

		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

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

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

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

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 传统图像处理算法总结

    传统图像处理算法总结1.图像滤波目的:保证图像细节特征的条件下抑制图像噪声。1.1线性滤波1.11方框滤波原图像与内核的系数加权求和方框滤波的核:normalize=true时,方框滤波就变成了均值滤波。也就是说,均值滤波是方框滤波归一化(normalized)后的特殊情况。方框滤波的缺点:丢失了图像的边缘信息。opencv函数:boxFilter(src,dst,-1,…

  • 职称计算机考试模块教程怎么用,【职称计算机考试模块怎么选择?】- 环球网校…

    职称计算机考试模块教程怎么用,【职称计算机考试模块怎么选择?】- 环球网校…【摘要】环球网校分享的“职称计算机考试模块怎么选择?”,以下介绍了职称计算机考试模块选择相关资料,希望对大家有帮助,更多资料敬请关注环球网校职称计算机考试频道,网校会及时更新考试资讯……问:职称计算机考试模块怎么选择?答:全国职称计算机考试模块一共设置有13类24个模块,可供各位考生选择一般评聘高级职务人员自选4个模块,评聘中级职务人员自选3个模块,评聘初级职务人员自选2个模块。在职称计算机考试模…

  • 免费mac激活码2021【2021免费激活】

    (免费mac激活码2021)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~M…

  • 连接共享打印机显示0x000bcb_0x00004005打印机连接

    连接共享打印机显示0x000bcb_0x00004005打印机连接以win7为例,在局域网中,安装共享打印机时,会出现安装失败,打开详细信息显示为0x000000bcb,重新安装也不行,具体操作如下:连接共享打印机出现0x000000bcb问题的解决方法1打开控制面板,点击卸载程序,如下:2点击”查看已安装的更新“如下:3点击右上角“搜索已安装更新”,输入:”KB4022722“,点击搜索,会在下面的找到”KB4022722“的更新,点击卸载就…

  • centos7 yum安装redis[通俗易懂]

    centos7 yum安装redis[通俗易懂]yum安装切换国内镜像,配置yum源#备份源镜像mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.backupmv/etc/yum.repos.d/epel.repo/etc/yum.repos.d/epel.repo.backup#下载阿里云Base镜像以及EPEL镜像wget-…

  • 投影矩阵的推导_分块矩阵的行列式公式

    投影矩阵的推导_分块矩阵的行列式公式看了好几篇关于投影矩阵的文章,在z坐标的推导上,没有提到为什么z’和1/z成线性关系,而是通过结论中的投影矩阵,即已知z’=(zA+B)/w,并且x和x’,y和y’关系式中分母都有-z,所以w为-z,然后(-n,-f)映射到(-1,1),求出A、B,得到z’和z的关系。这是用结论去反推过程,过程再得到结论,这样的逻辑我觉得不对,我认为,应该是先得到x,y,z各自的关系式,才去构造出投影矩…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号