精华内容
下载资源
问答
  • java实现学生信息管理系统
    2021-03-17 15:34:27

    java实现学生信息管理系统

    发布于 2020-6-12|

    复制链接

    摘记: java学生信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下主要使用的增删改查操作首先,需要先建一个文件(点击左上角File,选择第一个New里的第一个Java Project)

    然后再建一个Javabean包,在这个包里新建一个class类

    ```java

    package cn.hbsi.l ..

    java学生信息管理系统,具有一定的参考价值,感兴趣的小伙伴们可以参考一下主要使用的增删改查操作首先,需要先建一个文件(点击左上角File,选择第一个New里的第一个Java Project)然后再建一个Javabean包,在这个包里新建一个class类

    ```java

    package cn.hbsi.lianxi.bean;

    import java.io.Serializable;

    public class Student implements Serializable{

    private int sid;

    private String name;

    private int age;

    private String address;

    //无参构造方法

    public Student() {

    super();

    // TODO Auto-generated constructor stub

    }

    //有参构造方法

    public Student(int sid, String name, int age, String address) {

    super();

    this.sid = sid;

    this.name = name;

    this.age = age;

    this.address = address;

    }

    public int getSid() {

    return sid;

    }

    public void setSid(int sid) {

    this.sid = sid;

    }

    public String getName() {

    return name;

    }

    public void setName(String name) {

    this.name = name;

    }

    public int getAge() {

    return age;

    }

    public void setAge(int age) {

    this.age = age;

    }

    public String getAddress() {

    return address;

    }

    public void setAddress(String address) {

    this.address = address;

    }

    }

    ```

    然后再建一个包,里面新建一个class类1.写一个选择器

    ```java

    package cn.hbsi.lianxi.manage;

    import java.util.ArrayList;

    import java.util.Arrays;

    import java.util.Scanner;

    import cn.hbsi.lianxi.bean.Student;

    public class StudentManage {

    public static void main(String[] args) {

    ArrayList list = new ArrayList();

    for(;;) {

    System.out.println("欢迎来到学生管理系统,请选择:");

    System.out.println("1查询所有学生列表");

    System.out.println("2添加学生");

    System.out.println("3修改学生");

    System.out.println("4删除学生");

    System.out.println("5退出");

    System.out.println("请输入您的选择:");

    Scanner sc = new Scanner(System.in);

    int choice = sc.nextInt();

    switch (choice) {

    case 1:

    //执行查询所有学生列表的操作

    showAllStudent(list);

    break;

    case 2:

    //执行添加学生的操作

    addStudent(list);

    break;

    case 3:

    //执行修改学生的操作

    reviseStudent(list);

    break;

    case 4:

    //执行删除学生的操作

    delStudent(list);

    break;

    case 5:

    //执行退出

    exitStudent(list);

    return; //这里的 return 是为了退出程序

    default:

    break;

    }

    }

    }

    ```

    2.接下来我们需要进行添加学生操作

    ```java

    //一.添加学生

    private static void addStudent(ArrayList list) {

    // TODO Auto-generated method stub

    //1. 提示用户输入学生信息(学号、姓名、年龄、住址)

    Scanner sc = new Scanner(System.in);

    System.out.println("请输入学号:");

    int sid = sc.nextInt();

    System.out.println("请输入姓名:");

    String name = sc.next();

    System.out.println("请输入年龄:");

    int age = sc.nextInt();

    System.out.println("请输入住址:");

    String address = sc.next();

    //2. 将接受到的学生的零散的信息包装到Student Bean中

    Student stu = new Student(sid, name, age, address);

    //3. 将学生对象保存到集合中

    list.add(stu);

    System.out.println("添加成功!");

    }

    ```

    3.接下来我们通过遍历集合进行查询学生操作

    ```java

    //二.查询所有学生列表

    private static void showAllStudent(ArrayList list) {

    // TODO Auto-generated method stub

    //思路: 遍历集合,获得每一个学生对象,再输出学生对象的信息

    System.out.println("学号\t姓名\t年龄\t住址");

    for(Student stu:list) {

    System.out.println(stu.getSid()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());

    }

    }

    ```

    4.接下来我们可以进行修改操作了

    ```java

    //三.修改学生

    private static void reviseStudent(ArrayList list) {

    // TODO Auto-generated method stub

    //1. 判断集合中有没有学生信息

    Scanner sc = new Scanner(System.in);

    if(list.size()==0) {

    System.out.println("当前没有学生信息");

    return; //return直接跳出当前语句,不会执行下面的语句

    }

    //2. 输入要修改的学生学号

    System.out.println("请输入您想修改的学生学号:");

    int id = sc.nextInt();

    //3. 判断输入的id是否在list集合中,如果在,则执行一系列的代码,如果不在,直接跳出

    boolean flag = false;

    for(int i=0;i5.接下来我们进行删除操作

    ```java

    //四.删除学生

    private static void delStudent(ArrayList list) {

    // TODO Auto-generated method stub

    //1. 判断集合中有没有学生信息

    Scanner sc = new Scanner(System.in);

    if(list.size()==0) {

    System.out.println("当前没有学生信息");

    return; //return直接跳出当前语句,不会执行下面的语句

    }

    //2. 输入要删除的学生的学号

    System.out.println("请输入您想要删除的学生学号:");

    int id = sc.nextInt();

    //3. 判断输入的id是否在list集合中,如果在,则执行一系列的代码,如果不在,直接跳出

    boolean flag = false;

    for(int i=0;i6.最后我们发现是不是这个程序停不下来?

    那我们应该怎么退出呢?

    ```java

    //五.退出

    private static void exitStudent(ArrayList list) {

    // TODO Auto-generated method stub

    System.out.println("退出成功!");

    }

    ```

    更多相关内容
  • 是用java图形界面做的 实现了学生信息的添加 删除 修改(根据学号或姓名)查询等功能,用的是mySQL数据库
  • 所以,学生信息 管理系统既能方便学校管理部门的管理,又能方便学生及时查询个人信息。从自己学习的角度来说:这次系统的制作过程,无疑加深了自身对《 JAVA 》这门课理论知 识的理解, 大大提高了理论知识的应用...
  • java、jsp学生信息,学生成绩管理查询系统,2019最新,
  • 百度云链接分享; 计科大二下课程设计; 开发环境为jdk8+eclipse+mysql; 源码全面可运行,可作为计科本科生课程设计和毕业设计的参考;
  • 基于java swing的学生信息管理系统.包含基本的登陆、注册和学生信息的显示、添加、修改、删除、查询等功能。运行环境为jdk12
  • 基于Java和MySQL(jdbc)设计的学生管理系统,GUI界面实现增加、修改、删除、查询功能。首先电脑要配置好ODBC数据源,下载有Mysql和eclipse,eclipse里面导入有jdbc包,MySQL创建有自己的数据库和表,再把代码里的...
  • 学生信息管理系统 功能说明 学生信息管理,包括学生、班级、院系、课程、成绩等的管理。 本程序仅供学习食用。 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1、安装JDK。 2、导入SQL脚本并配置。 使用前...
  • JAVA可视化界面,可连接ACESS数据库。实现添加,删除,修改等常用功能。简单好用
  • 主要介绍了java实现简单的学生信息管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Java swing(Java图形界面)学生信息管理系统,里面有最基本的Java swing举例
  • 如何实现一个功能简单的学生信息管理系统,能够对学生信息(包括照片)进行添加、删除、修改和查询等操作。 二、基本要求 实现一个功能简单的学生信息管理系统,该系统具有按照账户名密码登录功能,登录后,可以...
  • 添加学生信息(性别,班级,学号)并提供修改的java参考代码。
  • 第一章 绪论 1.1 研究背景 1.2 研究现状 1.3 研究意义与目标 1.4 全文组织结构 1.5 本章小结 ... 5.4.2 其他信息查询 5.5 管理员功能实现 5.6 本章小结 第六章 总结与展望 6.1 工作总结 6.2 研究展望
  • (4)查询学生记录模块,可以按照学生的学号进行查询。 (5)排序学生记录模块,可以按照总成绩的升序进行排列。 (6)删除学生记录模块,可以将录入的学生记录删除。 (7) 修改学生记录模块,可以对录入的学生记录...
  • 这是一个Java程序,本人的课设,大家可以参考一下,可运行
  • 基于Javaweb的学生信息查询系统 在javaweb 的基础上完成的一个初级项目,学生信息查询,使用了jsp+mysql+servle
  • 一、项目简介本课程演示的是一套基于JavaWeb实现的学生信息管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。课程包含: 1. 项目源码、项目文档、数据库脚本、软件工具等所有...
  • 学生基本信息查询java文件)
  • 本系统完成了学生信息的增加 修改 删除 查询和选课 课程信息的增加 修改 删除 查询 成绩的添加 修改 查询等功能 能正常运行
  • 按教师查询信息页面UI界面如下,当查询信息时,可在下方显示该生信息查询不到则显示“查无此教师”: UI界面设计如下: package ui; import java.awt.BorderLayout; import java.awt.Container; import java....

    按教师查询信息页面UI界面如下,当查询到信息时,可在下方显示该生信息,查询不到则显示“查无此教师”:
    在这里插入图片描述
    UI界面设计如下:

    package ui;
    
    import java.awt.BorderLayout;
    
    import java.awt.Container;
    import java.awt.Font;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    import daoImp.ClassesDaoImp;
    import entity.Classes;
    
    public class SearchByTea extends JFrame implements ActionListener {
    	JLabel title,teacher;
    	JTextField tea;
    	JTextArea jt;
    	JButton dft,cla,rtn;
    	JPanel line,line1,line2,gird1,gird2;
    	JScrollPane jsp;
    
    	public SearchByTea() {
    		// TODO Auto-generated constructor stub
    		Container con=getContentPane();
    		con.setLayout(new BorderLayout());
    		line=new JPanel(new GridLayout(2,1));
    		gird1=new JPanel();
    		gird2=new JPanel();
    		line1=new JPanel();
    		line2=new JPanel();
    		title=new JLabel("学生管理系统");
    		title.setFont(new Font("黑体",Font.PLAIN, 20));
    		teacher=new JLabel("教师姓名:");
    		//初始化一个5行30列的文本域,用于显示多行数据
    		jt=new JTextArea(5,30);
    		//将jt放置于滚动面板jsp,可显示超出区域的内容
    		jsp=new JScrollPane(jt);
    		tea=new JTextField(10);
    		dft=new JButton("确定");
    		dft.addActionListener(this);
    		cla=new JButton("清空");
    		cla.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				tea.setText("");
    				jt.setText("");
    			}
    		});
    		rtn=new JButton("返回");
    		rtn.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				setVisible(false);
    				new Host().setVisible(true);
    			}
    		});
    		gird1.add(title);
    		gird2.add(teacher);
    		gird2.add(tea);
    		line.add(gird1);
    		line.add(gird2);
    		line1.add(jsp);
    		line2.add(dft);
    		line2.add(cla);
    		line2.add(rtn);
    		con.add(line,BorderLayout.NORTH);
    		con.add(line1,BorderLayout.CENTER);
    		con.add(line2,BorderLayout.SOUTH);
    		setTitle("按教师查询学生信息");
    		setSize(400,250);
    		setVisible(true);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		ClassesDaoImp cdi=new ClassesDaoImp();
    		if(cdi.sreachByTeacher(tea.getText())!=null) {
    			//foreach语句遍历返回的列表,显示到文本域里
    			for(Classes cs:cdi.sreachByTeacher(tea.getText()))
    				jt.append("学号:"+cs.getNum()+" 姓名:"+cs.getName()+" 教师:"+cs.getTeacher()+"\n");
    		}else {
    			jt.setText("查无此教师");
    		}
    	}
    
    }
    
    

    重写ClassesDaoImp类的按教师查询方法,实现查询功能:

    package daoImp;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import dao.classesDao;
    import db.DBCon;
    import entity.Classes;
    
    public class ClassesDaoImp implements classesDao {
    	Connection cn;
    	PreparedStatement psm=null;
    	private ResultSet rs;
    
    	@Override
    	public boolean add(Classes classes) throws SQLException {
    		// TODO Auto-generated method stub
    		//。。。。。。
    		return flag;
    	}
    
    	@Override
    	public boolean delete(String num) {
    		// TODO Auto-generated method stub
    		//。。。。。。
    		return flag;
    	}
    
    	@Override
    	public boolean update(Classes classes) {
    		// TODO Auto-generated method stub
    		//。。。。。。
    		return flag;
    	}
    
    	@Override
    	public Classes SearchByNum(String num) {
    		// TODO Auto-generated method stub
    		//。。。。。。
    		return null;
    	}
    
    	@Override
    	public List<Classes> sreachByTeacher(String teacher) {
    		// TODO Auto-generated method stub
    		DBCon dbcon=new DBCon();
    		cn=dbcon.getConnection();
    		//实例化一个Classes类型的列表,用来存放查询到的数据
    		List<Classes> listClass=new ArrayList<Classes>();
    		String sql="select * from classes where teacher=?";
    		try {
    			psm=cn.prepareStatement(sql);
    			psm.setString(1, teacher);
    			rs=psm.executeQuery();
    			if(rs.next()) {			//判断是否查询到数据
    				rs.absolute(0);		//将rs指针置于结果集首
    				while(rs.next()) {	//从第一行开始遍历数据
    					Classes cs=new Classes();
    					cs.setNum(rs.getString(2));
    					cs.setName(rs.getString(3));
    					cs.setTeacher(rs.getString(4));
    					listClass.add(cs);	//将得到的数据添加至列表
    				}
    				return listClass;
    			}
    			psm.close();
    			cn.close();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return null;
    	}
    }
    
    

    PS:
    1.foreach语句是for语句的简化,它无需知道要遍历对象的长度,就可以自动遍历对象中的元素,语法如下:
    for(元素遍历x:遍历对象obj){
    。。。。。。
    }
    2.List列表和数组相似,它不同于数组的是不用指定长度,可根据索引随机访问

    展开全文
  • 本资源为Java学生信息管理系统,实现功能如下: 1、系统的登录和注册 2、系统分为管理员,学生,教师三个身份,管理员和教师有权对学生信息进行增删改查操作,学生只能进行查询操作 3、学生成绩信息的增删改查操作 ...
  • 管理员端主要包括了基本信息管理、学生信息管理、教师信息管理、课程信息管理、信息查询和统计。教师端主要包括了成绩信息管理、成绩查询和统计。学生端主要包括了选课信息管理、我的成绩查看以及个人信息管理。整个...
  • Java 学生信息管理系统1. 项目概述2. 数据库的建立3. 项目页面4. 项目代码 + 分析5. 项目总结 关注博主不迷路,博主带你码代码! 1. 项目概述 这是一个学生信息管理系统,学生信息主要包括:学号,姓名,性别,出生...

    关注博主不迷路,博主带你码代码!

    1. 项目概述

    这是一个学生信息管理系统,学生信息主要包括:学号,姓名,性别,出生日期,班级;暂时就只有这些信息,若后续需要,可以相应的进行添加。
    该项目主要采用的技术是 Java GUI 设计,这个地方主要用 Java 工具 windowsbuilder 进行布局,(windowsbuilder没有安装或者不会安装的,可以看看我的这篇博客 Eclipse 安装 windowbuilder插件 ),MySql 数据库(MySql 数据库没有安装的 或者数据库使用软件 Navicat 没有安装的可以看看我的这篇博客 2021 MySql 8.0.26 安装教程(最详细的傻瓜教程) ),以及使用 Java 中的 JDBC 将数据库链接起来。

    2. 数据库的建立

    由于在项目中没有创建学生数据库的功能,所以学生数据库必须要先建立好,下面给出如何建立好MySQL学生数据库的相关代码 + 图片

    -- 创建数据库
    CREATE DATABASE niit
    DEFAULT CHARACTER SET utf8mb4;
    
    SHOW DATABASES;
    
    -- 使用数据库niit
    USE niit;
    
    -- 创建表Student
    CREATE TABLE Student
    (
    	ID INT PRIMARY KEY, 
    	NAME VARCHAR(4),
    	GENDER CHAR(1),
    	DOB DATE,
    	BATCH INT
    );
    
    -- 插入记录
    INSERT INTO Student VALUES
    (1,'独孤求败','男','1988-1-2',1),
    (2,'周芷若','女','1988-12-3',1),
    (3,'金毛狮王','男','1978-11-1',1),
    (4,'蒙挚','男','1989-2-5',2),
    (5,'夏春','女','1998-4-3',2),
    (6,'梅长苏','男','1999-12-6',2);
    
    -- 查看表中所有记录 语法:select * from 表名
    SELECT * FROM Student;
    
    

    在这里插入图片描述

    3. 项目页面

    主页面
    在这里插入图片描述
    添加学生
    在这里插入图片描述

    修改信息
    在这里插入图片描述

    删除学生
    在这里插入图片描述

    查询信息
    在这里插入图片描述

    4. 项目代码 + 分析

    主页面

    package studentsmanager;
    
    import java.awt.Color;
    import java.awt.EventQueue;
    import java.awt.Font;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.border.EmptyBorder;
    import java.awt.event.ActionListener;
    import java.awt.event.ActionEvent;
    
    public class MainFrame extends JFrame {
    
    	private JPanel contentPane;
    
    	/**
    	 * Launch the application.
    	 */
    	// 有了main函数才可以单独运行
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					MainFrame frame = new MainFrame();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public MainFrame() {
    		// 设置大小不可改变
    		setResizable(false);
    		// 设置标题
    		setTitle("学生管理系统");
    		// 由于这是主页面,所有当主页面关闭的时候,程序就直接退出
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		// setBounds(int x,int y,int width,int height);
    		// x 和 y 是窗口打开时的位置
    		// width 和 height 是窗口打宽度和高度
    		setBounds(100, 100, 450, 350);
    		// setLocationRelativeTo(c)
    		// 设置窗口相对于 c 的位置,当 c 为空或者 null 时,默认为是相对于屏幕中央
    		setLocationRelativeTo(null);
    		// 实例化一个 pane
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(null);
    		
    		JLabel lblNewLabel = new JLabel("学生管理系统");
    		lblNewLabel.setForeground(Color.RED);
    		lblNewLabel.setFont(new Font("宋体", Font.BOLD, 25));
    		lblNewLabel.setBounds(140, 10, 163, 44);
    		contentPane.add(lblNewLabel);
    		
    		JButton addButton = new JButton("添加学生");
    		// addActionListener 注册监听器
    		addButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				// 设置新窗口可见
    				new AddFrame().setVisible(true);
    			}
    		});
    	
    		addButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		addButton.setBounds(167, 64, 114, 37);
    		contentPane.add(addButton);
    		
    		JButton changeButton = new JButton("修改信息");
    		changeButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				// 同上
    				new ChangeFrame().setVisible(true);
    			}
    		});
    		changeButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		changeButton.setBounds(167, 121, 114, 37);
    		contentPane.add(changeButton);
    		
    		JButton deleteButton = new JButton("删除学生");
    		deleteButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				// 同上
    				new DeleteFrame().setVisible(true);
    			}
    		});
    		deleteButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		deleteButton.setBounds(167, 180, 114, 37);
    		contentPane.add(deleteButton);
    		
    		JButton queryButton = new JButton("查询信息");
    		queryButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				// 同上
    				new QueryFrame().setVisible(true);
    			}
    		});
    		queryButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		queryButton.setBounds(167, 240, 114, 37);
    		contentPane.add(queryButton);
    	}
    }
    
    

    在这里插入图片描述

    添加学生

    package studentsmanager;
    
    import java.awt.EventQueue;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.SQLException;
    
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    
    public class AddFrame extends JFrame {
    
    	private JPanel contentPane;
    	private JTextField idField;
    	private JTextField nameField;
    	private JTextField genderField;
    	private JTextField dobField;
    	private JTextField batchField;
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					AddFrame frame = new AddFrame();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public AddFrame() {
    		// 和前面类似
    		setResizable(false);
    		setTitle("添加学生");
    		// 这个地方,添加学生只是这个程序的一部分,所以当关闭这部分的时候,程序不直接退出,只是关闭该部分程序
    		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		setBounds(100, 100, 450, 470);
    		setLocationRelativeTo(null);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    		
    		JPanel panel = new JPanel();
    		contentPane.add(panel);
    		panel.setLayout(null);
    		
    		JLabel TitleLabel = new JLabel("请输入新学生的信息:");
    		TitleLabel.setFont(new Font("宋体", Font.BOLD, 20));
    		TitleLabel.setBounds(71, 34, 208, 45);
    		panel.add(TitleLabel);
    		
    		JLabel idLabel = new JLabel("学号:");
    		idLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		idLabel.setBounds(71, 105, 50, 30);
    		panel.add(idLabel);
    		
    		idField = new JTextField();
    		idField.setBounds(143, 99, 240, 45);
    		panel.add(idField);
    		idField.setColumns(10);
    		
    		JLabel nameLabel = new JLabel("姓名:");
    		nameLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		nameLabel.setBounds(71, 160, 50, 30);
    		panel.add(nameLabel);
    		
    		nameField = new JTextField();
    		nameField.setColumns(10);
    		nameField.setBounds(143, 154, 240, 45);
    		panel.add(nameField);
    		
    		JLabel genderLabel = new JLabel("性别:");
    		genderLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		genderLabel.setBounds(71, 215, 50, 30);
    		panel.add(genderLabel);
    		
    		genderField = new JTextField();
    		genderField.setColumns(10);
    		genderField.setBounds(143, 209, 240, 45);
    		panel.add(genderField);
    		
    		JLabel dobLabel = new JLabel("出生日期:");
    		dobLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		dobLabel.setBounds(41, 270, 80, 30);
    		panel.add(dobLabel);
    		
    		dobField = new JTextField();
    		dobField.setColumns(10);
    		dobField.setBounds(143, 264, 240, 45);
    		panel.add(dobField);
    		
    		JLabel batchLabel = new JLabel("班级:");
    		batchLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		batchLabel.setBounds(71, 325, 50, 30);
    		panel.add(batchLabel);
    		
    		batchField = new JTextField();
    		batchField.setColumns(10);
    		batchField.setBounds(143, 319, 240, 45);
    		panel.add(batchField);
    		
    		JButton addButton = new JButton("添加");
    		// 添加鼠标监听事件
    		addButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				// 先取出数据
    				// getText() 返回字符串类型的
    				// Integer.parseInt 数据类型转换
    				int id = Integer.parseInt(idField.getText());
    
    				String nameString = nameField.getText();
    
    				String genderString = genderField.getText();
    
    				String dobfieldString = dobField.getText();
    
    				int batch = Integer.parseInt(batchField.getText());
    				// 输出一下学生的信息,方便修改
    				System.out.println(id + "\t" + nameString + "\t" + genderString + "\t" + dobfieldString + "\t" + batch);
    				// SQLHelp 是自己写的一个工具类
    				SQLHelp sqlHelp = new SQLHelp();
    				try {
    					// 调用添加学生信息的方法
    					sqlHelp.addStudent(id, nameString, genderString, dobfieldString, batch);
    					// 弹出对话框,提示用户添加成功
    					JOptionPane.showMessageDialog(AddFrame.this, "添加成功!");
    				} catch (SQLException e1) {
    					// 这里捕获一下异常,因为学生的学号是唯一的,所以当学号已经存在的时候,提示用户,该学生信息已存在
    					// 异常代码为 23000
    					if(e1.getSQLState().equals("23000")) {
    						JOptionPane.showMessageDialog(AddFrame.this, "添加失败!该学生已存在");
    					}
    					e1.printStackTrace();
    				}
    
    			}
    		});
    		addButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		addButton.setBounds(182, 389, 97, 33);
    		panel.add(addButton);
    	}
    }
    
    

    添加成功:
    在这里插入图片描述
    添加失败:
    在这里插入图片描述
    修改信息

    package studentsmanager;
    
    import java.awt.EventQueue;
    import java.awt.Font;
    
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    import java.awt.event.ActionListener;
    import java.sql.SQLException;
    import java.awt.event.ActionEvent;
    
    public class ChangeFrame extends JFrame {
    
    	private JPanel contentPane;
    	private JTextField idField;
    	private JTextField nameField;
    	private JTextField genderField;
    	private JTextField dobField;
    	private JTextField batchField;
    	private JTextField searchField;
    	
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					ChangeFrame frame = new ChangeFrame();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public ChangeFrame() {
    		setResizable(false);
    		setTitle("修改信息");
    		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		setBounds(100, 100, 450, 470);
    		setLocationRelativeTo(null);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    		
    		JPanel panel = new JPanel();
    		contentPane.add(panel);
    		panel.setLayout(null);
    		
    		JLabel lblNewLabel = new JLabel("请输入要修改的学生的学号:");
    		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel.setBounds(71, 0, 208, 29);
    		panel.add(lblNewLabel);
    		
    		JLabel lblNewLabel_1 = new JLabel("学号:");
    		lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1.setBounds(71, 105, 50, 30);
    		panel.add(lblNewLabel_1);
    		
    		idField = new JTextField();
    		idField.setEditable(false);
    		idField.setBounds(143, 99, 240, 45);
    		panel.add(idField);
    		idField.setColumns(10);
    		
    		JLabel lblNewLabel_1_1 = new JLabel("姓名:");
    		lblNewLabel_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1.setBounds(71, 160, 50, 30);
    		panel.add(lblNewLabel_1_1);
    		
    		nameField = new JTextField();
    		nameField.setColumns(10);
    		nameField.setBounds(143, 154, 240, 45);
    		panel.add(nameField);
    		
    		JLabel lblNewLabel_1_1_1 = new JLabel("性别:");
    		lblNewLabel_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1.setBounds(71, 215, 50, 30);
    		panel.add(lblNewLabel_1_1_1);
    		
    		genderField = new JTextField();
    		genderField.setColumns(10);
    		genderField.setBounds(143, 209, 240, 45);
    		panel.add(genderField);
    		
    		JLabel lblNewLabel_1_1_1_1 = new JLabel("出生日期:");
    		lblNewLabel_1_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1_1.setBounds(41, 270, 80, 30);
    		panel.add(lblNewLabel_1_1_1_1);
    		
    		dobField = new JTextField();
    		dobField.setColumns(10);
    		dobField.setBounds(143, 264, 240, 45);
    		panel.add(dobField);
    		
    		JLabel lblNewLabel_1_1_1_2 = new JLabel("班级:");
    		lblNewLabel_1_1_1_2.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1_2.setBounds(71, 325, 50, 30);
    		panel.add(lblNewLabel_1_1_1_2);
    		
    		batchField = new JTextField();
    		batchField.setColumns(10);
    		batchField.setBounds(143, 319, 240, 45);
    		panel.add(batchField);
    		
    		JButton changeButton = new JButton("修改");
    		changeButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				
    				int id = Integer.parseInt(searchField.getText());
    				
    				String nameString = nameField.getText();
    				
    				String gendeString = genderField.getText();
    				
    				String dobString = dobField.getText();
    				
    				int batch = Integer.parseInt(batchField.getText());
    				
    				SQLHelp sqlHelp = new SQLHelp();
    				
    				try {
    					sqlHelp.changeStudent(id, nameString, gendeString, dobString, batch);
    					
    					JOptionPane.showMessageDialog(ChangeFrame.this, "修改成功!");
    				} catch (SQLException e) {
    					JOptionPane.showMessageDialog(ChangeFrame.this, "修改失败!");
    					e.printStackTrace();
    				}
    					
    			}
    		});
    		changeButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		changeButton.setBounds(182, 389, 97, 33);
    		panel.add(changeButton);
    		
    		searchField = new JTextField();
    		searchField.setBounds(71, 39, 208, 45);
    		panel.add(searchField);
    		searchField.setColumns(10);
    		
    		JButton searchButton = new JButton("查找");
    		searchButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e){
    				
    				int id = Integer.parseInt(searchField.getText());
    				
    				try {
    					
    					SQLHelp sqlHelp = new SQLHelp();
    					
    					Student student = sqlHelp.queryStudent(id);
    					
    					if(student != null) {
    						
    						// id 是直接读入的,所以就不需要从数据库中读出了
    						idField.setText(String.valueOf(id));
    						nameField.setText(student.getName());
    						genderField.setText(student.getGender());
    						dobField.setText(student.getDob());
    						batchField.setText(String.valueOf(student.getBatch()));
    						
    					} else {
    						JOptionPane.showMessageDialog(ChangeFrame.this, "无此用户");
    					}
    					
    				} catch (SQLException e1) {
    					e1.printStackTrace();
    				}
    				
    			}
    		});
    		searchButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		searchButton.setBounds(289, 42, 97, 39);
    		panel.add(searchButton);
    	}
    }
    
    

    修改前查询到学生信息
    在这里插入图片描述
    修改成功
    在这里插入图片描述
    修改失败
    失败的情况是数据链接出现了问题
    在这里插入图片描述

    未查询到学生信息
    在这里插入图片描述

    删除学生

    package studentsmanager;
    
    import java.awt.EventQueue;
    import java.awt.Font;
    
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    import java.awt.event.ActionListener;
    import java.sql.SQLException;
    import java.awt.event.ActionEvent;
    
    public class DeleteFrame extends JFrame {
    
    	private JPanel contentPane;
    	private JTextField idField;
    	private JTextField nameField;
    	private JTextField genderField;
    	private JTextField dobField;
    	private JTextField batchField;
    	private JTextField searchField;
    	
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					DeleteFrame frame = new DeleteFrame();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public DeleteFrame() {
    		setResizable(false);
    		setTitle("删除学生");
    		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		setBounds(100, 100, 450, 470);
    		setLocationRelativeTo(null);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    		
    		JPanel panel = new JPanel();
    		contentPane.add(panel);
    		panel.setLayout(null);
    		
    		JLabel lblNewLabel = new JLabel("请输入要删除的学生的学号:");
    		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel.setBounds(71, 0, 208, 29);
    		panel.add(lblNewLabel);
    		
    		JLabel lblNewLabel_1 = new JLabel("学号:");
    		lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1.setBounds(71, 105, 50, 30);
    		panel.add(lblNewLabel_1);
    		
    		idField = new JTextField();
    		idField.setEditable(false);
    		idField.setBounds(143, 99, 240, 45);
    		panel.add(idField);
    		idField.setColumns(10);
    		
    		JLabel lblNewLabel_1_1 = new JLabel("姓名:");
    		lblNewLabel_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1.setBounds(71, 160, 50, 30);
    		panel.add(lblNewLabel_1_1);
    		
    		nameField = new JTextField();
    		nameField.setColumns(10);
    		nameField.setBounds(143, 154, 240, 45);
    		panel.add(nameField);
    		
    		JLabel lblNewLabel_1_1_1 = new JLabel("性别:");
    		lblNewLabel_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1.setBounds(71, 215, 50, 30);
    		panel.add(lblNewLabel_1_1_1);
    		
    		genderField = new JTextField();
    		genderField.setColumns(10);
    		genderField.setBounds(143, 209, 240, 45);
    		panel.add(genderField);
    		
    		JLabel lblNewLabel_1_1_1_1 = new JLabel("出生日期:");
    		lblNewLabel_1_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1_1.setBounds(41, 270, 80, 30);
    		panel.add(lblNewLabel_1_1_1_1);
    		
    		dobField = new JTextField();
    		dobField.setColumns(10);
    		dobField.setBounds(143, 264, 240, 45);
    		panel.add(dobField);
    		
    		JLabel lblNewLabel_1_1_1_2 = new JLabel("班级:");
    		lblNewLabel_1_1_1_2.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1_2.setBounds(71, 325, 50, 30);
    		panel.add(lblNewLabel_1_1_1_2);
    		
    		batchField = new JTextField();
    		batchField.setColumns(10);
    		batchField.setBounds(143, 319, 240, 45);
    		panel.add(batchField);
    		
    		JButton deleteButton = new JButton("删除");
    		deleteButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				
    				int id = Integer.parseInt(searchField.getText());
    				
    				try {
    					SQLHelp sqlHelp = new SQLHelp();
    					
    					sqlHelp.deletestudent(id);
    					
    					JOptionPane.showMessageDialog(DeleteFrame.this, "删除成功!");
    				} catch (SQLException e1) {
    					JOptionPane.showMessageDialog(DeleteFrame.this, "删除失败");
    					e1.printStackTrace();
    				}
    				
    			}
    		});
    		deleteButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		deleteButton.setBounds(182, 389, 97, 33);
    		panel.add(deleteButton);
    		
    		searchField = new JTextField();
    		searchField.setBounds(71, 39, 208, 45);
    		panel.add(searchField);
    		searchField.setColumns(10);
    		
    		JButton searchButton = new JButton("查找");
    		searchButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				
    				int id = Integer.parseInt(searchField.getText());
    				
    				try {
    					SQLHelp sqlHelp = new SQLHelp();
    					
    					Student student = sqlHelp.queryStudent(id);
    					
    					if(student != null) {
    						
    						idField.setText(String.valueOf(id));
    						nameField.setText(student.getName());
    						genderField.setText(student.getGender());
    						dobField.setText(student.getDob());
    						batchField.setText(String.valueOf(student.getBatch()));
    						
    					} else {
    						JOptionPane.showMessageDialog(DeleteFrame.this, "无此学生");
    					}
    				} catch (SQLException e) {
    					e.printStackTrace();
    				}
    				
    				
    			}
    		});
    		searchButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		searchButton.setBounds(289, 42, 97, 39);
    		panel.add(searchButton);
    	}
    }
    
    

    删除成功
    在这里插入图片描述

    删除失败
    删除失败的时候是数据库链接出现了问题
    在这里插入图片描述

    查询到学生信息
    在这里插入图片描述

    未查询到学生
    在这里插入图片描述

    查询信息

    package studentsmanager;
    
    import java.awt.EventQueue;
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.sql.SQLException;
    
    import javax.swing.BoxLayout;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.border.EmptyBorder;
    
    public class QueryFrame extends JFrame {
    
    	private JPanel contentPane;
    	private JTextField idField;
    	private JTextField nameField;
    	private JTextField genderField;
    	private JTextField dobField;
    	private JTextField batchField;
    	private JTextField searchField;
    	
    
    	/**
    	 * Launch the application.
    	 */
    	public static void main(String[] args) {
    		EventQueue.invokeLater(new Runnable() {
    			public void run() {
    				try {
    					QueryFrame frame = new QueryFrame();
    					frame.setVisible(true);
    				} catch (Exception e) {
    					e.printStackTrace();
    				}
    			}
    		});
    	}
    
    	/**
    	 * Create the frame.
    	 */
    	public QueryFrame() {
    		setResizable(false);
    		setTitle("查询信息");
    		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
    		setBounds(100, 100, 450, 470);
    		setLocationRelativeTo(null);
    		contentPane = new JPanel();
    		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    		setContentPane(contentPane);
    		contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    		
    		JPanel panel = new JPanel();
    		contentPane.add(panel);
    		panel.setLayout(null);
    		
    		JLabel lblNewLabel = new JLabel("请输入要查找的学生的学号:");
    		lblNewLabel.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel.setBounds(71, 0, 208, 29);
    		panel.add(lblNewLabel);
    		
    		JLabel lblNewLabel_1 = new JLabel("学号:");
    		lblNewLabel_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1.setBounds(71, 105, 50, 30);
    		panel.add(lblNewLabel_1);
    		
    		idField = new JTextField();
    		idField.setEditable(false);
    		idField.setBounds(143, 99, 240, 45);
    		panel.add(idField);
    		idField.setColumns(10);
    		
    		JLabel lblNewLabel_1_1 = new JLabel("姓名:");
    		lblNewLabel_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1.setBounds(71, 160, 50, 30);
    		panel.add(lblNewLabel_1_1);
    		
    		nameField = new JTextField();
    		nameField.setColumns(10);
    		nameField.setBounds(143, 154, 240, 45);
    		panel.add(nameField);
    		
    		JLabel lblNewLabel_1_1_1 = new JLabel("性别:");
    		lblNewLabel_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1.setBounds(71, 215, 50, 30);
    		panel.add(lblNewLabel_1_1_1);
    		
    		genderField = new JTextField();
    		genderField.setColumns(10);
    		genderField.setBounds(143, 209, 240, 45);
    		panel.add(genderField);
    		
    		JLabel lblNewLabel_1_1_1_1 = new JLabel("出生日期:");
    		lblNewLabel_1_1_1_1.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1_1.setBounds(41, 270, 80, 30);
    		panel.add(lblNewLabel_1_1_1_1);
    		
    		dobField = new JTextField();
    		dobField.setColumns(10);
    		dobField.setBounds(143, 264, 240, 45);
    		panel.add(dobField);
    		
    		JLabel lblNewLabel_1_1_1_2 = new JLabel("班级:");
    		lblNewLabel_1_1_1_2.setFont(new Font("宋体", Font.PLAIN, 16));
    		lblNewLabel_1_1_1_2.setBounds(71, 325, 50, 30);
    		panel.add(lblNewLabel_1_1_1_2);
    		
    		batchField = new JTextField();
    		batchField.setColumns(10);
    		batchField.setBounds(143, 319, 240, 45);
    		panel.add(batchField);
    		
    		searchField = new JTextField();
    		searchField.setBounds(71, 39, 208, 45);
    		panel.add(searchField);
    		searchField.setColumns(10);
    		
    		JButton searchButton = new JButton("查找");
    		searchButton.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent arg0) {
    				
    				// 1.读出要查询的学生输入的id
    				// 因为学生的学号是唯一的,所以我们根据学号查询后,只会有一条数据
    				// 转化一下数据类型
    				int id = Integer.parseInt(searchField.getText());
    				
    				// 2.执行JDBC语句
    				try {
    					SQLHelp sqlHelp = new SQLHelp();
    					
    					Student student = sqlHelp.queryStudent(id);
    					
    					// 3.将查询结果填到文本框中
    					// 前提是学生存在
    					if(student != null) {
    						idField.setText(String.valueOf(id));
    						nameField.setText(student.getName());
    						genderField.setText(student.getGender());
    						dobField.setText(student.getDob());
    						batchField.setText(String.valueOf(student.getBatch()));
    					} else {
    						// 此时学生不存在,提示用户,不存在该学生
    						JOptionPane.showMessageDialog(QueryFrame.this, "无此学生");
    					}
    					
    				} catch (SQLException e) {
    					e.printStackTrace();
    				}
    				
    			}
    		});
    		searchButton.setFont(new Font("宋体", Font.PLAIN, 18));
    		searchButton.setBounds(289, 42, 97, 39);
    		panel.add(searchButton);
    	}
    }
    
    

    在这里插入图片描述
    SQLHelp 工具类

    package studentsmanager;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public  class SQLHelp {
    
    	public static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";  
    	public static final String DB_URL = "jdbc:mysql://localhost:3306/niit?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
    
    	public static final String username = "root";
    	public static final String password = "011216";
    	
    	private Connection connection = null;
    	private PreparedStatement pStatement = null;
    	private ResultSet rSet = null;
    	
    	// 加载驱动
    	// 静态初始化块(只执行一次)
    	static {
    		try {
    			Class.forName(JDBC_DRIVER);
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    	
    	// 链接数据库
    	public void  connectDB() {
    		try {
    			connection = DriverManager.getConnection(DB_URL,username,password);
    			System.out.println("数据库链接成功");
    		} catch (SQLException e) {
    			System.out.println("数据库链接失败");
    			e.printStackTrace();
    		}
    	}
    	
    	// 关闭资源
    	public void close() {
    		if(rSet != null) {
    			try {
    				rSet.close();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		
    		if(pStatement != null) {
    			try {
    				pStatement.close();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    		
    		if(connection != null) {
    			try {
    				connection.close();
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
    		}
    	}
    	
    	public  void addStudent(int id, String nameString, String genderString, String dobString, int batch) throws SQLException {
    		
    		// try finally 无论是否抛出异常都将执行 finally 中的语句
    		try {
    			// 先链接到数据库
    			connectDB();
    			
    			// sql 语句
    			// 静态 sql 语句需要进行字符串拼接
    			// 动态 sql 语句
    			String addsql = "insert into student values(?, ?, ?, ?, ?)";
    			
    			pStatement = connection.prepareStatement(addsql);
    			
    			pStatement.setInt(1, id);
    			pStatement.setString(2, nameString);
    			pStatement.setString(3, genderString);
    			pStatement.setString(4, dobString);
    			pStatement.setInt(5, batch);
    						
    			pStatement.executeUpdate();
    			
    		} finally {
    			
    			close();
    			
    		}
    		
    	}
    	
    	public void changeStudent(int id, String nameString, String genderString, String dobString, int batch) throws SQLException {
    					
    		try {
    			connectDB();
    			
    			String changesql = "update student set name = ?, gender = ?, dob = ?, batch = ? where id = ?";
    					
    			pStatement = connection.prepareStatement(changesql);
    
    			pStatement.setString(1, nameString);
    			pStatement.setString(2, genderString);
    			pStatement.setString(3, dobString);
    			pStatement.setInt(4, batch);
    			pStatement.setInt(5, id);
    					
    			pStatement.executeUpdate();
    			
    		} finally {
    			close();
    		}	
    
    	}
    
    	public void deletestudent(int id) throws SQLException {
    				
    		try {
    			
    			connectDB();
    			
    			String deleteString = "select * from student where id = ?";
    
    			pStatement = connection.prepareStatement(deleteString);
    			
    			pStatement.setInt(1, id);
    			
    			pStatement.execute();
    
    		} finally {
    			close();
    		}
    		
    	}
    	
    	public Student queryStudent(int id) throws SQLException {
    		try {
    			connectDB();
    			
    			String querysql = "select * from student where id = ?";
    			pStatement = connection.prepareStatement(querysql);
    			pStatement.setInt(1, id);
    			// 三种方法执行
    			// execute()	都可以使用,返回true或false
    			// executeQuery() 专门用于查询,返回结果集
    			// executeUpdate() 专门用于删除、更新
    			rSet = pStatement.executeQuery();
    			
    			if(rSet.next()) {
    				
    				String nameString = rSet.getString(2);
    				String genderString = rSet.getString(3);
    				String dobString = rSet.getString(4);
    				int batchString = rSet.getInt(5);
    				
    				// 查询到学生信息返回结果集
    				return new Student(nameString, genderString, dobString, batchString);
    			} else {
    				// 没有查询到学生信息,返回null
    				return null;
    			}
    
    		} finally {
    			close();
    		}
    
    	}
    
    }
    
    

    Student 工具类

    package studentsmanager;
    
    public class Student {
    
    	private String name;
    	private String gender;
    	private String dob;
    	private int batch;
    	
    	public Student(String name, String gender, String dob, int batch) {
    		this.name = name;
    		this.gender = gender;
    		this.dob = dob;
    		this.batch = batch;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public String getGender() {
    		return gender;
    	}
    	
    	public String getDob() {
    		return dob;
    	}
    	
    	public int getBatch() {
    		return batch;
    	}
    	
    }
    
    

    5. 项目总结

    这算一个比较完整的项目了,既有 GUI 又有 MySQL 数据库的已经 Java 的 JDBC ,虽然已经有了 GUI 界面,但很明显,没有进行任何美化,就只是简单的一个界面,勉勉强强可以看的过去,使用 JDBC 链接数据库的时候,没有实现可以直接在程序创建数据库,只能从数据库方创建数据库,这是一个缺点,同时使用 JDBC 链接数据库的时候,所使用的代码依旧是 MySQL 数据库的代码,(我 MySQL 学的不好,增删改查啥的数据库代码都还记不清楚 哭了…)还有就是当程序在进行修改和删除的时候,修改失败和删除失败的时候,都是因为数据链接失败了才进行弹窗,不知道怎么改成无法修改或者无法删除的时候提示,(又哭了…)
    欢迎个位大佬指出错误,同时也欢迎各位小白借鉴,有问题的话,评论或者私聊都是可以的,看了就会回复!

    最后一句:

    关注博主不迷路,博主带你码代码!

    展开全文
  • import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing....

    查找页面UI界面如下,2项选择可分别跳转到相应页面:
    在这里插入图片描述
    UI界面设计如下:

    package ui;
    
    import java.awt.BorderLayout;
    import java.awt.Container;
    import java.awt.Font;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.ButtonGroup;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    
    public class Search extends JFrame implements ActionListener {
    	JLabel title;
    	JRadioButton number,teacher;
    	JButton dft,rtn;
    	JPanel sec1,sec2,sec3;
    
    	public Search() {
    		// TODO Auto-generated constructor stub
    		Container con=getContentPane();
    		con.setLayout(new BorderLayout());//将容器设置为边框布局
    		sec1=new JPanel();
    		sec2=new JPanel();
    		//边框布局中嵌套一个网格布局,放置两个单选按钮
    		sec2.setLayout(new GridLayout(1,2));
    		sec3=new JPanel();
    		title=new JLabel("学生管理系统");
    		title.setFont(new Font("黑体", Font.PLAIN, 20));
    		ButtonGroup bg=new ButtonGroup();
    		number=new JRadioButton("1.按学号查询",true);
    		teacher=new JRadioButton("2.按教师姓名查询");
    		bg.add(number);
    		bg.add(teacher);
    		dft=new JButton("确定");
    		dft.addActionListener(this);
    		rtn=new JButton("返回");
    		rtn.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// TODO Auto-generated method stub
    				setVisible(false);
    				new Host().setVisible(true);
    			}
    		});
    		sec1.add(title);
    		sec2.add(number);
    		sec2.add(teacher);
    		sec3.add(dft);
    		sec3.add(rtn);
    		//将3个面板分别放置在容器的north,center,south位置
    		con.add(sec1,BorderLayout.NORTH);
    		con.add(sec2,BorderLayout.CENTER);
    		con.add(sec3,BorderLayout.SOUTH);
    		setTitle("查询学生信息");
    		setSize(300,150);
    		setVisible(true);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		if(number.isSelected()) {
    			this.setVisible(false);
    			new SearchByNum().setVisible(true);
    		}else {
    			this.setVisible(false);
    			new SearchByTea().setVisible(true);
    		}
    
    	}
    
    }
    

    下一步:
    按学号查询信息
    按教师姓名查询信息

    展开全文
  • java学生信息管理系统

    2018-07-13 14:53:00
    java学生信息管理系统:实现功能: 1,登录系统时-要登录,注册; 2,对学生:(1)查询所有,查询年级;(2)增加学生,修改学生信息;(3)删除学生,(4)退出系统 单纯javase,没用swing,纯控制台查看
  • java作业学生成绩管理系统(控制台实现),适合刚学习java面向对象的同学
  • JAVA代码实现学生信息的录入和查询

    千次阅读 多人点赞 2021-05-26 12:39:59
    JAVA代码实现学生信息的录入和查询 要求: 程序运行后输入1进行学生信息录入(学号、姓名、JAVA成绩、高数成绩、英语成绩)(默认四个学生,该程序暂时只能手动修改学生数),信息录入完成输入2进行个人信息查询,也可以...
  • 学生信息管理系统,使用Java开发。 1、登录界面可以进行登录操作。有俩种权限选择。分别跳转到不同的界面。 2、使用了事件监听、Java操作SQLserver数据库等知识。 3、图形化界面中使用了JTable等组件,将查询结果...
  • 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能: (1)创建学生信息并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的籍贯信息; (3)按学号或姓名查询其籍贯; (4)按籍贯...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,319
精华内容 25,327
关键字:

java查询学生信息

java 订阅
友情链接: unit8_2_float_.rar