Java student management system and database idea

The effect is as shown in the figure
insert image description here
, 6 file codes are required
insert image description here

package StudentDemo;

import java.util.Scanner;

public class MainTest {

	/**
	 * main方法是程序的入口
	 *
	 * @param args
	 */
	public static void main(String args[]) {

		int choice;

		System.out.println("这是一个学生信息管理系统,最大容量为100,欢迎您对本系统的使用");
		while (true) {
			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("********6.信息查询********");
			System.out.println("********7.退出********");
			System.out.println("===请输入你要进行的操作====");
			@SuppressWarnings("resource")
			Scanner scanner = new Scanner(System.in);
			choice = scanner.nextInt();
			if (choice == 7)
				break;
			switch (choice) {
				case 1:
					Tools_DB.add();
					break;// 添加学生信息
				case 2:
					Tools_DB.show();
					break;// 查询学生信息
				case 3:
					Tools_DB.change();
					break;// 修改学生信息
				case 4:
					Tools_DB.delete();
					break;// 删除学生信息
				case 5:
					Tools_DB.paixu();
					break;// 对学生信息排序
				case 6:
					Tools_DB.query();
					break;// 查询学生信息
				case 7:
					System.out.println("您要操作的是:7.退出");
					System.exit(0);
					break;// 表示正常程序的关闭,执行的是以下操作:System.exit(0);
				default:
					System.out.println("输入出错!请重新输入");
					break;// 表示正常程序的关闭,执行的是以下操作:System.exit(0);
			}
		}
		System.out.println("感谢您对本系统的使用,欢迎下次继续使用");
	}

}

package StudentDemo;

public class Student {
	private String stuNum;//学号
	private String name;//姓名
	private String gender;//性别
	private int age;//年龄
	private int score;//分数
	public Student() {
		super();
	}
	public Student(String stuNum,String name,String gender,int age,int score) {
		this.stuNum = stuNum;
		this.name = name;
		this.gender = gender;
		this.age = age;
		this.score = score;
	}


	public String getStuNum() {
		return stuNum;
	}
	public void setStuNum(String stuNum) {
		this.stuNum = stuNum;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}

}


package StudentDemo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class Tools_ArrayList {

	static ArrayList<Student> stus = new ArrayList<Student>();

	static Scanner scanner = new Scanner(System.in);

	public static void add() {// 添加学生信息

		System.out.println("添加时要输入学生的学号,姓名,性别,年龄,成绩");
		Student stu = new Student();
		System.out.println("请输入该学生的学号:");
		stu.setStuNum(scanner.next());
		System.out.println("请输入该学生的姓名:");
		stu.setName(scanner.next());
		System.out.println("请输入该学生的性别:");
		stu.setGender(scanner.next());
		System.out.println("请输入该学生的年龄:");
		stu.setAge(scanner.nextInt());
		System.out.println("请输入该学生的成绩:");
		stu.setScore(scanner.nextInt());
		stus.add(stu);
		System.out.println("添加成功");

	}

	public static void show() {// 展示学生信息
		System.out.println("*******************************************");
		System.out.println(" 学号             姓名                          性别              年龄                成绩");
		for (int i = 0; i < stus.size(); i++){
			System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + "\t" + stus.get(i).getGender() + "\t"
					+ stus.get(i).getAge() + "\t" + stus.get(i).getScore());
		}
		System.out.println("*******************************************");
		System.out.println();
	}

	// 这里排序调用api方法
	public static void paixu(){
		Collections.sort(stus, new Comparator<Student>(){
			@Override
			public int compare(Student stu1, Student stu2) {
				if(stu1.getScore()>stu2.getScore()){
					return 1;
				}else if(stu1.getScore()==stu2.getScore()){
					return 0;
				}else{
					return -1;
				}
			}
		});

	}

	public static void change() {// 改变学生信息
		System.out.println("请输入要修改信息的学生学号");
		String stunumber = scanner.next();
		for (int i = 0; i < stus.size(); i++) {
			if (stunumber.equals(stus.get(i).getStuNum())) {
				System.out.println("请输入要修改的学生的信息,学号,姓名,性别,年龄,分数");
				stus.get(i).setStuNum(scanner.next());
				stus.get(i).setName(scanner.next());
				stus.get(i).setGender(scanner.next());
				stus.get(i).setAge(scanner.nextInt());
				stus.get(i).setScore(scanner.nextInt());
				break;
			}

		}
	}

	public static void query() {// 查询
		System.out.println("请输入要查询的学生学号");
		String Stunumber = scanner.next();
		int i;
		for (i = 0; i < stus.size(); i++) {
			if (Stunumber.equals(stus.get(i).getStuNum())) {
				System.out.println("*******************************************");
				System.out.println(" 学号             姓名                          性别              年龄                成绩");
				System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + "\t" + stus.get(i).getGender()
						+ "\t" + stus.get(i).getAge() + "\t" + stus.get(i).getScore());
				System.out.println("*******************************************");
			}
		}

	}

	public static void delete() {// 删除学生信息
		System.out.println("请输入要删除信息的学生学号");
		String Stunumber = scanner.next();
		int i;
		for (i = 0; i < stus.size(); i++) {
			if (Stunumber.equals(stus.get(i).getStuNum())) {
				stus.remove(i);
			}
		}
		System.out.println("删除完成");
	}


}
package StudentDemo;

import java.util.Scanner;

public class Tools_Arrays {
	// 定义学生数组,容量为100
	static Student[] stus = new Student[100];
	// 数据中实际添加学生的下标,每添加一个下标加1,删除时减1,留意下面的add(),delete()
	static int number = 0;
	static Scanner scanner = new Scanner(System.in);

	public static void add() {// 添加学生信息

		System.out.println("添加时要输入学生的学号,姓名,性别,年龄,成绩");
		stus[number] = new Student();
		System.out.println("请输入该学生的学号:");
		stus[number].setStuNum(scanner.next());
		System.out.println("请输入该学生的姓名:");
		stus[number].setName(scanner.next());
		System.out.println("请输入该学生的性别:");
		stus[number].setGender(scanner.next());
		System.out.println("请输入该学生的年龄:");
		stus[number].setAge(scanner.nextInt());
		System.out.println("请输入该学生的成绩:");
		stus[number].setScore(scanner.nextInt());
		// 添加成功,下标加1
		number++;
		System.out.println("添加成功");

	}

	public static void show() {// 展示学生信息
		System.out.println("*******************************************");
		System.out.println(" 学号             姓名                          性别              年龄                成绩");
		for (int i = 0; i < number; i++)
			System.out.println(stus[i].getStuNum() + "\t" + stus[i].getName() + "\t" + "\t" + stus[i].getGender() + "\t"
					+ stus[i].getAge() + "\t" + stus[i].getScore());
		System.out.println("*******************************************");
		System.out.println();
	}

	// 这里排序用的是冒泡排序,在练习时,可以使用十大排序的任意一种替换。
	public static void paixu() {// 对学生信息进行排序
		int j;
		Student temp = new Student();
		for (int i = 0; i < number; i++) {
			for (j = i + 1; j < number; j++)
				if (stus[i].getScore() > stus[j].getScore()) {
					temp = stus[i];
					stus[i] = stus[j];
					stus[j] = temp;
				}
		}
		System.out.println("排序完成,选择”学生信息查看“进行查看");
	}

	public static void change() {// 改变学生信息
		System.out.println("请输入要修改信息的学生学号");
		String Stunumber = scanner.next();
		for (int i = 0; i < number; i++) {
			if (Stunumber.equals(stus[i].getStuNum())) {
				System.out.println("请输入要修改的学生的信息,学号,姓名,性别,年龄,分数");
				stus[i].setStuNum(scanner.next());
				stus[i].setName(scanner.next());
				stus[i].setGender(scanner.next());
				stus[i].setAge(scanner.nextInt());
				stus[i].setScore(scanner.nextInt());
				break;
			}

		}
	}

	public static void query() {// 查询
		System.out.println("请输入要查询的学生学号");
		String Stunumber = scanner.next();
		int i;
		for (i = 0; i < number; i++) {
			if (Stunumber.equals(stus[i].getStuNum())) {
				System.out.println("*******************************************");
				System.out.println(" 学号             姓名                          性别              年龄                成绩");
				System.out.println(stus[i].getStuNum() + "\t" + stus[i].getName() + "\t" + "\t" + stus[i].getGender()
						+ "\t" + stus[i].getAge() + "\t" + stus[i].getScore());
				System.out.println("*******************************************");
			}
		}

	}

	public static void delete() {// 删除学生信息
		System.out.println("请输入要删除信息的学生学号");
		String Stunumber = scanner.next();
		int i;
		for (i = 0; i < number; i++) {
			if (Stunumber.equals(stus[i].getStuNum()))
				break;
		}

		for (; i < number - 1; i++) {
			stus[i] = stus[i + 1];
		}

		number--;

		System.out.println("删除完成");
	}

}
package StudentDemo;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Scanner;

public class Tools_DB {

	static ArrayList<Student> stus = new ArrayList<Student>();

	static Scanner scanner = new Scanner(System.in);

	public static void dbExcute(String sql) {
		ResultSet rs = null;
		Statement stmt = null;
		Connection conn = null;
		try {
			/* 加载并注册MySQL的JDBC驱动 */
			Class.forName("com.mysql.jdbc.Driver");
			/* 建立到MySQL数据库的建立 */
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL = false&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC",
					"root", "hui768285131");
			// conn=DriverManager.getConnection("jdbc:mysql://120.26.208.137:3306/db_test?characterEncoding=utf8","db_test","123qwe!@#");
			/* 访问数据库,执行SQL语句 */
			stmt = conn.createStatement();
			stmt.executeUpdate(sql);

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (rs != null) {
					rs.close();// 关闭ResultSet对象
					rs = null;
				}
				if (stmt != null) {
					stmt.close();// 关闭Statement对象
					stmt = null;
				}
				if (conn != null) {
					conn.close();// 关闭Connection对象
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public static void query(String sql) {
		ResultSet rs = null;
		Statement stmt = null;
		Connection conn = null;
		try {
			/* 加载并注册MySQL的JDBC驱动 */
			Class.forName("com.mysql.jdbc.Driver");
			/* 建立到MySQL数据库的建立 */
			conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL = false&useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC",
					"root", "hui768285131");
			// conn=DriverManager.getConnection("jdbc:mysql://120.26.208.137:3306/db_test?characterEncoding=utf8","db_test","123qwe!@#");
			/* 访问数据库,执行SQL语句 */
			stmt = conn.createStatement();
			/* 添加记录 */
			System.out.println("添加记录后:");
			// rs=stmt.executeQuery("select * from student");
			rs = stmt.executeQuery(sql);
			stus = new ArrayList<Student>();

			while (rs.next()) {

				String stuNum = rs.getString("stuNum");
				String name = rs.getString("name");
				String gender = rs.getString("gender");
				int age = rs.getInt("age");
				int score = rs.getInt("score");

				Student student = new Student();
				student.setStuNum(stuNum);
				student.setName(name);
				student.setGender(gender);
				student.setAge(age);
				student.setScore(score);

				stus.add(student);

			}

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				if (rs != null) {
					rs.close();// 关闭ResultSet对象
					rs = null;
				}
				if (stmt != null) {
					stmt.close();// 关闭Statement对象
					stmt = null;
				}
				if (conn != null) {
					conn.close();// 关闭Connection对象
					conn = null;
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	public static void add() {// 添加学生信息

		System.out.println("添加时要输入学生的学号,姓名,性别,年龄,成绩");
		System.out.println("请从键盘输入学号");
		String outter_stuNum = scanner.next();

		System.out.println("请从键盘输入姓名");
		String outter_name = scanner.next();

		System.out.println("请从键盘输入性别");
		String outter_gender = scanner.next();

		System.out.println("请输入该学生的年龄:");
		int outter_age = scanner.nextInt();

		System.out.println("请从键盘输入成绩");
		int outter_score = scanner.nextInt();

		String sql = "insert into student_jxyy(stuNum,name,gender,age,score) values(" + "'" + outter_stuNum + "','"
				+ outter_name + "','" + outter_gender + "'," + outter_age + "," + outter_score + ")";
		System.out.println(sql);
		dbExcute(sql);

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

	}

	public static void show() {// 展示学生信息

		// 从数据库中查询出数据
		query("select * from student_jxyy");

		System.out.println("*******************************************");
		System.out.println(" 学号               姓名                 性别               年龄              成绩");
		for (int i = 0; i < stus.size(); i++)
			System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + stus.get(i).getGender()
					+ "\t" + stus.get(i).getAge() + "\t" + stus.get(i).getScore());
		System.out.println("*******************************************");
		System.out.println();

	}

	// 这里排序调用api方法
	@SuppressWarnings("unchecked")
	public static void paixu() {
		// 从数据库中查询出数据
		query("select * from student_jxyy order by score");
		System.out.println("*******************************************");
		System.out.println(" 学号        姓名            性别          年龄         成绩");
		for (int i = 0; i < stus.size(); i++)
			System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + "\t"
					+ stus.get(i).getGender() + "\t" + stus.get(i).getAge() + "\t" + stus.get(i).getScore());
		System.out.println("*******************************************");
		System.out.println();

	}

	public static void change() {// 改变学生信息

		System.out.println("请输入要修改的学生的信息,学号,姓名,性别,年龄,分数");

		System.out.println("请从键盘输入学号");
		String outter_stuNum = scanner.next();
		System.out.println("请从键盘输入姓名");
		String outter_name = scanner.next();
		System.out.println("请从键盘输入性别");
		String outter_gender = scanner.next();
		System.out.println("请输入该学生的年龄:");
		int outter_age = scanner.nextInt();
		System.out.println("请从键盘输入成绩");
		int outter_score = scanner.nextInt();

		StringBuffer sql = new StringBuffer(" update student_jxyy ");
		sql.append(" set name = ");
		sql.append("'" + outter_name + "', ");
		sql.append("  gender = ");
		sql.append("'" + outter_gender + "', ");
		sql.append("  age = ");
		sql.append(outter_age + ", ");
		sql.append("  score = ");
		sql.append(outter_score + " ");
		sql.append(" where stuNum = " + "'" + outter_stuNum + "'");
		System.out.println(sql);
		// dbExcute(sql.toString());

	}

	public static void query() {// 查询
		// 从数据库中查询出数据
		System.out.println("请输入要查询的学生学号");
		String stunumber = scanner.next();
		query("select * from student_jxyy where stuNum = " + "'" + stunumber + "'");
		for (int i = 0; i < stus.size(); i++) {

			System.out.println("*******************************************");
			System.out.println(" 学号        姓名                               性别          年龄         成绩");
			System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + stus.get(i).getGender()
					+ "\t" + stus.get(i).getAge() + "\t" + stus.get(i).getScore());
			System.out.println("*******************************************");

		}

	}

	public static void delete() {// 删除学生信息
		System.out.println("请输入要删除信息的学生学号");
		String stunumber = scanner.next();

		StringBuffer sql = new StringBuffer(" delete from student_jxyy ");

		sql.append(" where stuNum = " + "'" + stunumber + "'");
		System.out.println(sql);
		dbExcute(sql.toString());

		System.out.println("删除完成");
	}

}
package StudentDemo;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

public class  Tools_IOFile{

	static ArrayList<Student> stus = new ArrayList<Student>();

	static Scanner scanner = new Scanner(System.in);

	public static void addToFile(String str)  {
		PrintWriter out;
		try {
			out = new PrintWriter(new FileOutputStream("students.txt",true));
			out.write(str);
			out.write("\n");
			out.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}




	public static void add() {


		System.out.println("添加时要输入学生的学号,姓名,性别,年龄,成绩");
		System.out.println("请从键盘输入学号");
		String outter_stuNum = scanner.next();


		System.out.println("请从键盘输入姓名");
		String outter_name = scanner.next();

		System.out.println("请从键盘输入性别");
		String outter_gender = scanner.next();

		System.out.println("请输入该学生的年龄:");
		int outter_age = scanner.nextInt();

		System.out.println("请从键盘输入成绩");
		int outter_score = scanner.nextInt();


		String studentInfo = outter_stuNum + ":" + outter_name + ":" + outter_gender + ":" +outter_age + ":" + outter_score;
		addToFile(studentInfo);
		System.out.println("添加成功");

	}

	/**
	 * 将文本中学生信息加载入容器
	 */
	public static ArrayList<Student> txtInfoToList() {

		ArrayList<Student> stuList = new ArrayList<Student>();
		try {
			BufferedReader in = new BufferedReader(new FileReader("students.txt"));
			String info = null;
			while((info = in.readLine()) != null){
				String[] infos = info.split(":");
				if (infos != null && infos.length == 5){
					Student stu = new Student();
					// 学号,姓名,性别,年龄,成绩
					stu.setStuNum(infos[0]);
					stu.setName(infos[1]);
					stu.setGender(infos[2]);
					stu.setAge(Integer.parseInt(infos[3]));
					stu.setScore(Integer.parseInt(infos[4]));
					stuList.add(stu);
				}
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return stuList;

	}
	/**
	 * 将容器中学生信息写入文本
	 */
	public static void listInfoToTxt(ArrayList<Student> stuList){
		// 将动态组的内容写入到文件
		try {
			PrintWriter out = new PrintWriter(new FileOutputStream("students.txt"),false);

			for (int i = 0;i < stuList.size();i++) {

				String stuNum = stuList.get(i).getStuNum();

				String name = stuList.get(i).getName();

				String gender = stuList.get(i).getGender();

				int age = stuList.get(i).getAge();

				int score = stuList.get(i).getScore();


				String studentInfo =stuNum + ":" + name + ":" + gender + ":" + age + ":" + score;
				addToFile(studentInfo);

			}
			out.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}


	public static void show() {// 展示学生信息

		// 让stus重新指向文本中的学生信息
		stus =  txtInfoToList();

		System.out.println("*******************************************");
		System.out.println(" 学号             姓名                          性别              年龄                成绩");
		for (int i = 0; i < stus.size(); i++)
			System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + "\t" + stus.get(i).getGender() + "\t"
					+ stus.get(i).getAge() + "\t" + stus.get(i).getScore());
		System.out.println("*******************************************");
		System.out.println();
	}

	// 这里排序调用api方法
	@SuppressWarnings("unchecked")
	public static void paixu(){

		// 让stus重新指向文本中的学生信息
		stus =  txtInfoToList();

		Collections.sort(stus, new Comparator(){
			@Override
			public int compare(Object o1, Object o2) {
				Student stu1=(Student)o1;
				Student stu2=(Student)o2;
				if(stu1.getScore()>stu2.getScore()){
					return 1;
				}else if(stu1.getScore()==stu2.getScore()){
					return 0;
				}else{
					return -1;
				}
			}
		});

		// 将容器中学生信息写入文本
		listInfoToTxt(stus);
	}


	public static void change() {// 改变学生信息

		// 让stus重新指向文本中的学生信息
		stus =  txtInfoToList();

		System.out.println("请输入要修改信息的学生学号");
		String Stunumber = scanner.next();
		for (int i = 0; i < stus.size(); i++) {
			if (Stunumber.equals(stus.get(i).getStuNum())) {
				System.out.println("请换行输入要修改的学生的信息:姓名,性别,年龄,分数");
				stus.get(i).setName(scanner.next());
				stus.get(i).setGender(scanner.next());
				stus.get(i).setAge(scanner.nextInt());
				stus.get(i).setScore(scanner.nextInt());
				break;
			}

		}
		// 将容器中学生信息写入文本
		listInfoToTxt(stus);
	}


	public static void query() {// 查询

		// 让stus重新指向文本中的学生信息
		stus =  txtInfoToList();

		System.out.println("请输入要查询的学生学号");
		String Stunumber = scanner.next();
		int i;
		for (i = 0; i < stus.size(); i++) {
			if (Stunumber.equals(stus.get(i).getStuNum())) {
				System.out.println("*******************************************");
				System.out.println(" 学号             姓名                          性别              年龄                成绩");
				System.out.println(stus.get(i).getStuNum() + "\t" + stus.get(i).getName() + "\t" + "\t" + stus.get(i).getGender()
						+ "\t" + stus.get(i).getAge() + "\t" + stus.get(i).getScore());
				System.out.println("*******************************************");
			}
		}

	}

	public static void delete() {// 删除学生信息

		// 让stus重新指向文本中的学生信息
		stus =  txtInfoToList();

		System.out.println("请输入要删除信息的学生学号");
		String Stunumber = scanner.next();
		int i;
		for (i = 0; i < stus.size(); i++) {
			if (Stunumber.equals(stus.get(i).getStuNum())) {
				stus.remove(i);
			}
		}

		// 将容器中学生信息写入文本
		listInfoToTxt(stus);
		System.out.println("删除完成");
	}


}

Need idea to connect to MySQL database to create test

Requires test database and student_jxyy table

insert image description here
Details: When the idea connects to the MySQL database to create a test, you need to pay attention to the corresponding connection of the MySQL version
insert image description here
and /* Load and register the MySQL JDBC driver */
mysql 5.x: Class.forName("com.mysql.jdbc.Driver") ;
MySQL 5.x and above: Class.forName("com.mysql.cj.jdbc.Driver");
insert image description here
the test above is the database name, you can change it

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324179055&siteId=291194637