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

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

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

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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 字符串转时间格式

    字符串转时间格式importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassAAAAAAAAAA{publicstaticvoidmain(String[]args)throwsParseException{SimpleDateFormatdateFormat=newSimpleDateFormat(“yyyy-MM-ddHH:mm:ss”);D

    2022年5月5日
    39
  • 宽字节注入原理_sqlmap宽字节注入

    宽字节注入原理_sqlmap宽字节注入在mysql中,用于转义的函数有addslashes,mysql_real_escape_string,mysql_escape_string等,还有一种情况是magic_quote_gpc,不过高版本的PHP将去除这个特性。首先,宽字节注入与HTML页面编码是无关的,笔者曾经看到<metacharset=utf8>就放弃了尝试,这是一个误区,SQL注入不是XSS。虽然他们中编码的成…

    2022年10月14日
    1
  • android之发送短信的方法研究

    android中可以通过两种方式发送短信 第一:调起系统发短信功能;主要代码如下:Uri uri = Uri.parse(“smsto:10010”); Intent it = new Intent(Intent.ACTION_SENDTO, uri); it.putExtra(“sms_body”, “102”);

    2022年3月10日
    39
  • bat批处理命令大全_文件批处理命令

    bat批处理命令大全_文件批处理命令批处理文件(batchfile)包含一系列DOS命令,通常用于自动执行重复性任务。用户只需双击批处理文件便可执行任务,而无需重复输入相同指令。编写批处理文件非常简单,但难点在于确保一切按顺序执行。编写严谨的批处理文件可以极大程度地节省时间,在应对重复性工作时尤其有效在Windows中善用批处理可以简化很多重复工作批处理? 批处理(Batch),也称为批处理脚本。顾名思义,批处理就是对某对象进行批量的处理。批处理文件的扩展名为bat 目前比较常见的批处理包含两类: DOS批

    2022年8月22日
    5
  • mybatis批量导入(数据库批量提交)

    从网上查阅相关资料,整理了一个Oracle批量插入的方法: SELECTS_FORUM_USERID.NEXTVALFROMDUAL INSERTINTODEPT(DEPTNO,DNAME,LOC)SELECTS_FORUM_USERID.NEXTVAL,A.*FROM( SELEC

    2022年4月13日
    48
  • c++map set_get post区别

    c++map set_get post区别setset的数据结构set的操作函数erasefindcount重载操作符multisetmapmap的数据结构map的构造函数map的操作函数erasecleanfind重载运算符其他操作函数multimap)setset是一种关联式容器,其特性如下:set以RBTree作为底层容器所得元素的只有key没有value,value就是key不允许出现键值重复所有的元素都会被自动排…

    2022年9月6日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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