在项目中建立四个包,分别是com.wu.JavaBean、com.wuJavaDao、com.wu.JavaService、com.wu.JavaView

数据库表结构

学生表只有四个属性:学生姓名、学生性别、学生学号(主键)、学生班级
管理员表只有两个属性:管理员用户名(主键)、管理员密码

这里笔者为了简单,学生表只写了四个属性,管理员表只写了两个属性。

在JavaBean新建Student和Root类,如下:

Student.java:

package com.wu.JavaBean;
/***
* @date 2020年12月15日下午9:49:51
* @author 一夜星尘*/
public class Student {private String name;private String gender;private String id;private String team;public Student() {}public Student(String name,String gender,String id,String team) {this.name = name;this.id = id;this.team = team;this.gender = gender;}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 String getId() {return id;}public void setId(String id) {this.id = id;}public String getTeam() {return team;}public void setTeam(String team) {this.team = team;}
}

Root.java:

package com.wu.JavaBean;
/***
* @date 2020年12月15日下午9:50:30
* @author 一夜星尘*/
public class Root {private String username; // 账号private String password; // 密码private String  superroot ; // 超级管理员身份 唯一一个public Root(String username) {this.username = username;}public Root(String username,String password,String superroot) {      this.username = username;this.password = password;this.superroot = superroot;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public boolean isSuperRoot() {return superroot.equals("1"); // 1代表超级管理员}
}

建立数据库连接DAO层,即在JavaDao包下建立JDBC.java,该程序只是控制数据库的连接:

package com.wu.JavaDao;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;/**
* @date 2020年12月15日下午9:58:11
* @author 一夜星尘
*/
public class JDBC {private Connection sqllink = null;/*** 获取数据库连接对象* @return* @throws Exception*/public  Connection  getConnection()  throws Exception{String DATABASE_DRIVER = "com.mysql.cj.jdbc.Driver"; String DATABASE_URL = "jdbc:mysql://127.0.0.1:3306/jdbc_db"+"?charcterEncoding=utf-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"; String DATABASE_USER = "root";String DATABASE_PASSWORD = "root";try {Class.forName(DATABASE_DRIVER); // 注册驱动sqllink = DriverManager.getConnection(DATABASE_URL,DATABASE_USER,DATABASE_PASSWORD); // 连接数据库return this.sqllink;}catch(SQLException e) {e.printStackTrace();System.out.println("连接数据库异常"); // 错误信息显示到控制台return this.sqllink;}}/*** 关闭数据库连接对象* @throws Exception*/public void closeConnection() throws Exception{try {if(this.sqllink != null) {this.sqllink.close();}}catch(SQLException e) {System.out.println("关闭数据库连接异常");}}
}

com.wu.JavaBean和com.wu.JavaDao已经全部完成了,接下来就是完成业务逻辑JavaService包下的实现

对于增添数据的业务方法Add.java:

package com.wu.JavaService;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import com.wu.JavaBean.Root;
import com.wu.JavaBean.Student;
import com.wu.JavaDao.JDBC;/**
* @date 2020年12月15日下午9:59:09
* @author 一夜星尘
*/
public class Add {/*** 添加信息* @param element 学生或者管理员* @return* @throws Exception*/public static boolean add(Object  element) throws Exception{ // 多态// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象if(element instanceof Student) {String sql = "insert into student(name,gender,id,team) values(?,?,?,?)"; // mysql插入语句Student student  = (Student) element; // 向下转型try {sqlaction = sqllink.prepareStatement(sql); // 操作对象sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getGender());sqlaction.setString(3,student.getId());sqlaction.setString(4,student.getTeam());int count = sqlaction.executeUpdate(); // 执行操作return (count == 1) ? true : false;}catch(SQLException e) {return false;}finally{jdbc.closeConnection(); // 关闭数据库连接if(sqlaction != null) {sqlaction.close();}}}else if(element instanceof Root) {String sql = "insert into root(username,password,superroot) values(?,?,0)"; // mysql插入语句Root root  = (Root) element; // 向下转型// 超级管理员权限if(!root.isSuperRoot()) {return false;}try {sqlaction = sqllink.prepareStatement(sql); // 操作对象sqlaction.setString(1,root.getUsername());sqlaction.setString(2,root.getPassword());int count = sqlaction.executeUpdate(); // 执行操作return (count == 1) ? true : false;}catch(SQLException e) {return false;}finally{jdbc.closeConnection();  // 关闭数据库连接if(sqlaction != null) {sqlaction.close();}}}else {System.out.println("对象传入错误");return false;}}
}

对于删除Remove.java:

package com.wu.JavaService;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import com.wu.JavaBean.Root;
import com.wu.JavaBean.Student;
import com.wu.JavaDao.JDBC;/**
* @date 2020年12月15日下午10:00:30
* @author 一夜星尘
*/
public class Remove {/*** 移除学生信息* @param student 待移除的学生* @param pos 移除方式* @return* @throws Exception*/public static boolean removeStudent(Student student ,String username,int pos) throws Exception{ // 部分修改或者全部修改// 权限判断 只有超级管理员才能实现全部学生删除if (pos == 0 && !Find.getAccess(username).equals("1")) {return false;}// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象String sql = "";String[] info = new String[4];/*** 0代表删除所有学生* 1代表删除所有姓名为name的学生* 2代表删除所有性别为gender的学生* 3代表删除一个学号为id的学生* 4代表删除所有班级为team的学生* 5代表删除所有姓名为name性别为gender的学生* 6代表删除一个学号为id姓名为name的学生* 7代表删除所有姓名为name的班级为team的学生* 8代表删除性别为gender学号为id的一个学生* 9代表删除所有性别为gender班级为team的学生* 10代表删除一个学号为id班级为team的学生* 11代表删除一个姓名为name性别为gender学号为id的学生* 12代表删除所有姓名为name性别为gender班级为team的学生* 13代表删除删除一个姓名为name学号为id班级为team的学生* 14代表删除一个性别为gender学号为id班级为team的学生* 15代表删除一个姓名为name性别为gender学号为id班级为team的学生*/switch(pos) {case 0:sql = "delete from student";try {sqlaction = sqllink.prepareStatement(sql);sqlaction.executeUpdate();return true;}catch(SQLException e) {e.printStackTrace();return false;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}case 1:sql = "delete from student where name = ?";info[0] = student.getName();break;case 2:sql = "delete from student where gender = ?";info[0] = student.getGender();    break;case 3:sql = "delete from student where id = ?";info[0] = student.getId();break;case 4:  sql = "delete from student where team = ?";info[0] = student.getTeam();break;case 5:sql = "delete from student where name = ? and gender = ?";info[0] = student.getName();info[1] = student.getGender();break;case 6:sql = "delete from student where name = ? and id = ?";info[0] = student.getName();info[1] = student.getId();break;case 7:sql = "delete from student where name = ? and team = ?";info[0] = student.getName();info[1] = student.getTeam();break;case 8:sql = "delete from student where gender = ? and id = ?";info[0] = student.getGender();info[1] = student.getId();break;case 9:sql = "delete from student where gender = ? and team = ?";info[0] = student.getId();info[1] = student.getTeam();break;case 10:sql = "delete from student where id = ? and team = ?";info[0] = student.getName();info[1] = student.getGender();break;case 11:sql = "delete from student where name = ? and gender = ? and id = ?";info[0] = student.getName();info[1] = student.getGender();info[2] = student.getId();break;case 12:sql = "delete from student where name = ? and gender = ? and team = ?";info[0] = student.getName();info[1] = student.getGender();info[2] = student.getTeam();break;case 13:sql = "delete from student where name = ? and id = ? and team = ?";info[0] = student.getName();info[1] = student.getId();info[2] = student.getTeam();break;case 14:sql = "delete from student where gender = ? and id = ? and team = ?";info[0] = student.getGender();info[1] = student.getId();info[2] = student.getTeam();break;case 15:sql = "delete from student where name = ? and gender = ? and id = ? and team = ?";info[0] = student.getName();info[1] = student.getGender();info[2] = student.getId();info[3] = student.getTeam();}try {sqlaction = sqllink.prepareStatement(sql);switch(pos) {case 1:case 2:case 3:case 4:sqlaction.setString(1, info[0]);break;case 5:case 6:case 7:case 8:case 9:case 10:sqlaction.setString(1, info[0]);sqlaction.setString(2, info[1]);break;case 11:case 12:case 13:case 14:sqlaction.setString(1, info[0]);sqlaction.setString(2, info[1]);sqlaction.setString(3, info[2]);break;case 15:sqlaction.setString(1, info[0]);sqlaction.setString(2, info[1]);sqlaction.setString(3, info[2]);sqlaction.setString(4, info[3]);break;}sqlaction.executeUpdate();return true;}catch(SQLException e) {e.printStackTrace();return false;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}/*** 删除管理员信息* @param root 待删除管理员* @return* @throws Exception*/public static boolean removeRoot(Root root) throws Exception{ // 完全删除// 权限判断if(!root.isSuperRoot()) {return false;}// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象String sql = "delete from root where username = ? ";try {sqlaction  = sqllink.prepareStatement(sql);sqlaction.setString(1,root.getUsername());int count = sqlaction.executeUpdate();return count == 1?true : false;}catch(SQLException e) {e.printStackTrace();return false;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}
}

对于查找Find.java:

package com.wu.JavaService;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;import com.wu.JavaBean.Root;
import com.wu.JavaBean.Student;
import com.wu.JavaDao.JDBC;/**
* @date 2020年12月15日下午10:01:05
* @author 一夜星尘
*/
public class Find {/*** 查找学生信息* @param student 待查找的学生* @param pos 查找方式* @return* @throws Exception*/public static ArrayList<Student> findStduent(Student student,int pos) throws Exception{ // 查询所有学生或者部分学生// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象ResultSet result =  null; // 结果集String sql = "";ArrayList<Student> studentlist = new ArrayList<Student>(); // 返回的结果/*** 0 代表查询全部* 1 代表查询所有姓名为name的学生* 2 代表查询所有性别为gender的学生* 3 代表查询一个学号为id的学生* 4 代表查询所有班级为team的学生* 5 代表查询...同删除操作*/switch(pos) {case 0:sql = "select * from student";try {sqlaction = sqllink.prepareStatement(sql);result = sqlaction.executeQuery(); // 执行查询操作while(result.next()) {String name = result.getString("name");String gender = result.getString("gender");String id = result.getString("id");String team = result.getString("team");studentlist.add(new Student(name,gender,id,team)); // 添加至返回结果中}return studentlist;}catch(SQLException e) {e.printStackTrace();return null;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}case 1:sql = "select * from student where name like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());break;case 2:sql = "select * from student where gender like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getGender());break;case 3:sql = "select * from student where id like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getId());break;case 4:  sql = "select * from student where team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getTeam());break;case 5:sql = "select * from student where name like ?  and gender like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getGender());break;case 6:sql = "select * from student where name like ? and id like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getId());break;case 7:sql = "select * from student where name like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getTeam());break;case 8:sql = "select * from student where gender like ? and id like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getGender());sqlaction.setString(2,student.getId());break;case 9:sql = "select * from student where gender like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getGender());sqlaction.setString(2,student.getTeam());break;case 10:sql = "select * from student where id like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getId());sqlaction.setString(2,student.getTeam());break;case 11:sql = "select * from student where name like ? and gender like ? and id like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getGender());sqlaction.setString(3,student.getId());break;case 12:sql = "select * from student where name like ? and gender like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getGender());sqlaction.setString(3,student.getTeam());break;case 13:sql = "select * from student where name like ? and id like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getId());sqlaction.setString(3,student.getTeam());break;case 14:sql = "select * from student where  gender like ? and id like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getGender());sqlaction.setString(2,student.getId());sqlaction.setString(3,student.getTeam());break;case 15:sql = "select * from student where  name like ? and gender like ? and id like ? and team like ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,student.getName());sqlaction.setString(2,student.getGender());sqlaction.setString(3,student.getId());sqlaction.setString(4,student.getTeam());break;}try {result = sqlaction.executeQuery(); // 执行查询操作while(result.next()) {String name = result.getString("name");String gender = result.getString("gender");String id = result.getString("id");String team = result.getString("team");studentlist.add(new Student(name,gender,id,team)); // 添加至返回结果中}return studentlist;}catch(SQLException e) {e.printStackTrace();return null;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}/*** 超级管理员权限* 查找所有管理员* @param root 验证属性* @return* @throws Exception*/public static ArrayList<Root> findRoot(Root root) throws Exception{ // 完全查找权限// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象ResultSet result = null;ArrayList<Root> rootlist = new ArrayList<Root>();String sql = "select * from root";try {sqlaction = sqllink.prepareStatement(sql);result = sqlaction.executeQuery();while(result.next()) {String username = result.getString("username");String password = result.getString("password");String superroot = result.getString("superroot");rootlist.add(new Root(username,password,superroot));}return rootlist;}catch(SQLException e) {e.printStackTrace();return null;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}/*** 获取权限信息* @param username 用户名* @return* @throws Exception*/public static String getAccess(String username) throws Exception{// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象ResultSet result = null;String sql = "select superroot from root where username = ?";try {sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1, username);result= sqlaction.executeQuery();if(result.next()) {return result.getString("superroot");}else {return "0";}}catch(SQLException e) {e.printStackTrace();return "0";}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}public static int getCount() throws Exception{// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象ResultSet result = null;String sql = "select count(*) from student";try {sqlaction = sqllink.prepareStatement(sql);result  = sqlaction.executeQuery();if(result.next()) {return Integer.parseInt(result.getString(1));}else {return 0;}}catch(Exception e) {e.printStackTrace();return 0;}}}

对于修改Update.java:

package com.wu.JavaService;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;import com.wu.JavaBean.Root;
import com.wu.JavaBean.Student;
import com.wu.JavaDao.JDBC;/**
* @date 2020年12月15日下午10:01:22
* @author 一夜星尘
*/
public class Update {/*** 更新学生信息* @param oldstudent 待修改的学生* @param newstudent 修改后的学生* @param pos 修改方式* @return* @throws Exception*/public static boolean updateStudent(Student oldstudent,Student newstudent,int pos) throws Exception{  // 部分或者完全更新模式// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象String sql = "";int count = 0;switch(pos) {case 0:sql = "update student set name = ?,gender  = ?,id = ?,team = ?  where id = ?"; // id一定要存在try {sqlaction  = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getName());sqlaction.setString(2,newstudent.getGender());sqlaction.setString(3,newstudent.getId());sqlaction.setString(4,newstudent.getTeam());sqlaction.setString(5,oldstudent.getId());count = sqlaction.executeUpdate(); //执行操作return count==1?true:false;}catch(SQLException e) {e.printStackTrace();return false;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}case 1:sql = "update student set name = ? where name = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getName());sqlaction.setString(2, oldstudent.getName());break;case 2:sql = "update student set name = ? where gender = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getName());sqlaction.setString(2, oldstudent.getGender());break;case 3:sql = "update student set name = ? where id = ?";  sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getName());sqlaction.setString(2, oldstudent.getId());break;case 4:sql = "update student set name = ? where team = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getName());sqlaction.setString(2, oldstudent.getTeam());break;case 5:sql = "update student set gender = ? where name = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getGender());sqlaction.setString(2, oldstudent.getName());break;case 6:sql = "update student set gender = ? where gender = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getGender());sqlaction.setString(2, oldstudent.getGender());break;case 7:sql = "update student set gender = ? where id = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getGender());sqlaction.setString(2, oldstudent.getId());break;case 8:sql = "update student set gender = ? where team = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getGender());sqlaction.setString(2, oldstudent.getTeam());break;case 9:sql = "update student set id = ? where id = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getId());sqlaction.setString(2, oldstudent.getId());break;case 10:sql = "update student set team = ? where name = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getTeam());sqlaction.setString(2, oldstudent.getName());break;case 11:sql = "update student set team = ? where gender = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getTeam());sqlaction.setString(2, oldstudent.getGender());break;case 12:sql = "update student set team = ? where id = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getTeam());sqlaction.setString(2, oldstudent.getId());break;case 13:sql = "update student set team = ? where team = ?";sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,newstudent.getTeam());sqlaction.setString(2, oldstudent.getTeam());break;}try {count = sqlaction.executeUpdate();return count >= 1 ? true:false;}catch(SQLException e) {e.printStackTrace(); return false;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}/*** 超级管理员权限* @param root 待更新的管理员* @param info 更新信息* @param pos 更新方式* @return* @throws Exception*/public static boolean updateRoot(Root root ,String info,int pos) throws Exception{  // 完全更新模式// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象String sql = "";switch(pos){case 1:sql = "update root set username = ? where username =?";break;case 2:sql = "update root set password = ? where username =?";break;}try {sqlaction  = sqllink.prepareStatement(sql);sqlaction.setString(1,info);sqlaction.setString(2, root.getUsername());int count = sqlaction.executeUpdate();return count == 1?true:false;}catch(SQLException e) {e.printStackTrace();return false;}finally {jdbc.closeConnection();if(sqlaction != null) {sqlaction.close();}}}
}

加上管理员登录认证Exist.java:

package com.wu.JavaService;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import com.wu.JavaBean.Root;
import com.wu.JavaDao.JDBC;/**
* @date 2020年12月15日下午10:41:32
* @author 一夜星尘
*/
public class Exist {/*** 管理员登录认证* @param root 管理员* @return* @throws Exception*/public static boolean rootIsExist(Root root) throws Exception {// 获取数据库对象JDBC jdbc = new JDBC();Connection sqllink = jdbc.getConnection();PreparedStatement sqlaction = null; // 创建一个数据库操作对象ResultSet result = null;String sql = "select count(*) from root where username = ? and password = ?";try {sqlaction = sqllink.prepareStatement(sql);sqlaction.setString(1,root.getUsername());sqlaction.setString(2,root.getPassword());result = sqlaction.executeQuery();if(result.next()) {int count = Integer.parseInt(result.getString(1));return count == 1 ? true:false;}else {return false;}}catch(SQLException e) {e.printStackTrace();return false;}finally {jdbc.closeConnection();  // 关闭数据库连接if(sqlaction != null) {sqlaction.close();}}}
}

处理模糊查询的DealString.java:

package com.wu.JavaService;import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
* @date 2020年12月15日下午1:48:05
* @author 一夜星尘
*/
public class DealString {public static String[]  deal(String search) {String[] searchs = search.split("&");String regex = "([\\u4e00-\\u9fa5]+)=([ % _ a-z 0-9 \\u4e00-\\u9fa5]+)"; // 匹配中文或者数字模式String[] result = new String[5];result[0] = "0"; // 默认为全部boolean nameflag = false;boolean genderflag = false;boolean idflag = false;boolean teamflag = false;HashMap<Integer, String> hashmap = new HashMap<Integer, String>();for(String str : searchs) {Matcher mattcher = Pattern.compile(regex).matcher(str);if(mattcher.find()) {if(mattcher.group(1).equals("姓名")) {nameflag = true;hashmap.put(1,mattcher.group(2));}else if(mattcher.group(1).equals("性别")){genderflag = true;hashmap.put(2,mattcher.group(2));}else if(mattcher.group(1).equals("学号")) {idflag = true;hashmap.put(3,mattcher.group(2));}else if(mattcher.group(1).equals("班级")) {teamflag = true;hashmap.put(4,mattcher.group(2));}else {}}}// 对应位置放置相关信息Iterator<?> iter = hashmap.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); int  key = (int) entry.getKey(); String val =(String) entry.getValue(); result[key] = val;} if(nameflag && !genderflag && !idflag && !teamflag) {result[0] = "1";return result;}else if(!nameflag && genderflag && !idflag && !teamflag) {result[0] = "2";return result;}else if(!nameflag && !genderflag && idflag && !teamflag) {result[0] = "3";return result;}else if(!nameflag && !genderflag && !idflag && teamflag) {result[0] = "4";return result;}else if(nameflag && genderflag && !idflag && !teamflag) {result[0] = "5";return result;}else if(nameflag && !genderflag && idflag && !teamflag) {result[0] = "6";return result;}else if(nameflag && !genderflag && !idflag && teamflag) {result[0] = "7";return result;}else if(!nameflag && genderflag && idflag && !teamflag) {result[0] = "8";return result;}else if(!nameflag && genderflag && !idflag && teamflag) {result[0] = "9";return result;}else if(!nameflag && !genderflag && idflag && teamflag) {result[0] = "10";return result;}else if(nameflag && genderflag && idflag && !teamflag) {result[0] = "11";return result;}else if(nameflag && genderflag && !idflag && teamflag) {result[0] = "12";return result;}else if(nameflag && !genderflag && idflag && teamflag) {result[0] = "13";return result;}else if(!nameflag && genderflag && idflag && teamflag) {result[0] = "14";return result;}else if(nameflag && genderflag && idflag && teamflag) {result[0] = "15";return result;}return result;}
}

接下来就是可视化界面,在JavaView包下
Home.java:

package com.wu.JavaView;
/**
* @date 2020年12月16日下午5:09:16
* @author 一夜星尘
*/
public class Hemo {public static void main(String[] args) {try {new Login();}catch(Exception e) {System.out.println("程序出错!");}}
}

登录界面Login.java:

package com.wu.JavaView;import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JRootPane;
import javax.swing.JTextField;
import javax.swing.border.Border;import com.wu.JavaBean.Root;
import com.wu.JavaService.Exist;/**
* @date 2020年12月16日下午10:02:08
* @author 一夜星尘
*/
public class Login extends JFrame{private static final long serialVersionUID = 1L;public Login() throws Exception{this.setSize(450,350); // 设置宽高度this.setTitle("登录界面"); // 设置标题this.setResizable(false); // 固定窗口大小this.setUndecorated(true); // 去掉窗口的装饰 this.getRootPane().setWindowDecorationStyle(JRootPane.PLAIN_DIALOG); //采用指定的窗口装饰风格this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 结束程序this.setLocationRelativeTo(null); // 使之位于主窗口的中心setBackGroundPanel();this.setVisible(true); // 显示}public void setBackGroundPanel() throws Exception{JPanel panel = new JPanel();JButton jb=new JButton("测试按钮");jb.setBounds(100,100,100,100);this.add(panel);panel.setLayout(null); // 空布局Font font = new Font("微软雅黑",Font.BOLD,11);Border border1 = BorderFactory.createLoweredBevelBorder();Border border2 = BorderFactory.createLineBorder(Color.BLUE);JLabel usernamelabel = new JLabel("账号: ");usernamelabel.setFont(font);usernamelabel.setForeground(Color.BLACK);usernamelabel.setBounds(130,100,30,15);JLabel passwordlabel = new JLabel("密码: ");passwordlabel.setFont(font);passwordlabel.setForeground(Color.BLACK);passwordlabel.setBounds(130,150,30,15);JTextField  usernametext = new JTextField("I am superroot");usernametext.setBounds(160,95,150,20);usernametext.setBorder(border1);
//      usernametext.setOpaque(false); // 透明框JPasswordField passwordtext = new JPasswordField("password");passwordtext.setBounds(160,145,150,20);passwordtext.setBorder(border1);JButton submit = new JButton("登录");JButton close = new JButton("退出");submit.setBorder(border2); // 登录键边框风格submit.setBounds(130,210,90,25);submit.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {String username = usernametext.getText();String password = new String(passwordtext.getPassword());if(username.equals("")) {JOptionPane.showMessageDialog(null, "用户名不能为空!", "错误",JOptionPane.WARNING_MESSAGE);}else if(password.equals("")){JOptionPane.showMessageDialog(null, "密码不能为空!", "错误",JOptionPane.WARNING_MESSAGE);}else {// 登录认证Root root = new Root(username,password,"0"); // 新建一个虚拟管理员对象try {if(Exist.rootIsExist(root)) { new Menu(username);dispose();  // 关闭当前的窗口}else {JOptionPane.showMessageDialog(null, "用户名或密码错误!", "错误",JOptionPane.WARNING_MESSAGE);}}catch(Exception e) {e.printStackTrace();}finally {usernametext.setText("");passwordtext.setText("");}}}});close.setBorder(border2); // 关闭键边框风格close.setBounds(250,210,90,25);close.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {int quit = JOptionPane.showConfirmDialog(null,"是否退出?","提示",JOptionPane.YES_NO_OPTION);if(quit == JOptionPane.YES_OPTION) {System.exit(0);}     }});panel.add(submit);panel.add(close);panel.add(usernametext);panel.add(passwordtext);panel.add(usernamelabel);panel.add(passwordlabel);}}

效果如下,布局简单:

主页面Menu.java:

package com.wu.JavaView;import java.awt.Color;
import java.awt.Font;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRootPane;/**
* @date 2020年12月16日上午10:53:39
* @author 一夜星尘
*/
public class Menu{private static JFrame Frame = new JFrame();private String username = null;private static  JPanel Panel  = null;public Menu(String username) {this.username = username;Frame.setSize(800,600); // 设置宽高度Frame.setTitle("菜单界面"); // 设置标题Frame.setResizable(false); // 固定窗口大小Frame.setUndecorated(true); // 去掉窗口的装饰 Frame.getRootPane().setWindowDecorationStyle(JRootPane.FRAME); //采用指定的窗口装饰风格Frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);Frame.setLocationRelativeTo(null); // 主窗口的中心Panel  = this.getPanel();this.setMenu(); // 设置菜单项Frame.add(Panel);Frame.setVisible(true); // 可见}public JPanel  getPanel() {JPanel panel = new JPanel();panel.setLayout(null);// 绝对布局panel.setBackground(Color.LIGHT_GRAY);Font font = new Font("微软雅黑",Font.BOLD,20);JLabel title = new JLabel("管理员:"+username);title.setBounds(300,500,250,40);title.setFont(font);panel.add(title); // 增加底部标签return panel;}public void setMenu() {// 菜单条JMenuBar menubar = new JMenuBar();menubar.setBounds(0,0,800,40);Panel.add(menubar);//菜单项JMenu addmenu = new JMenu("添加");JMenuItem addmenuItem1 = new JMenuItem("添加学生");JMenuItem addmenuItem2 = new JMenuItem("添加管理员");addmenu.add(addmenuItem1);addmenu.add(addmenuItem2);JMenu removemenu = new JMenu("删除");JMenuItem removemenuItem1 = new JMenuItem("删除学生");JMenuItem removemenuItem2 = new JMenuItem("删除管理员");removemenu.add(removemenuItem1);removemenu.add(removemenuItem2);JMenu findmenu = new JMenu("查找");JMenuItem findmenuItem1 = new JMenuItem("查找学生");JMenuItem findmenuItem2 = new JMenuItem("查找管理员");findmenu.add(findmenuItem1);findmenu.add(findmenuItem2);JMenu updatemenu = new JMenu("修改");JMenuItem updatemenuItem1 = new JMenuItem("修改学生");JMenuItem updatemenuItem2 = new JMenuItem("修改管理员");updatemenu.add(updatemenuItem1);updatemenu.add(updatemenuItem2);JMenu accessmenu = new JMenu("账号设置");JMenuItem accessmenuItem1 = new JMenuItem("修改用户名");JMenuItem accessmenuItem2 = new JMenuItem("修改密码");  JMenuItem accessmenuItem3 = new JMenuItem("退出账号");JMenuItem accessmenuItem4 = new JMenuItem("注销账号");accessmenu.add(accessmenuItem1);accessmenu.add(accessmenuItem2);accessmenu.add(accessmenuItem3);accessmenu.add(accessmenuItem4);// 添加功能 监听器实现{addmenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = AddPanel.getPanel(Menu.this.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});addmenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = AddPanel.getPanel(Menu.this.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});      }// 移除功能 监听器实现{removemenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = RemovePanel.getPanel(Menu.this.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});removemenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = RemovePanel.getPanel(Menu.this.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});}// 查找功能 监听器实现{findmenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = FindPanel.getPanel(Menu.this.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});findmenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = FindPanel.getPanel(Menu.this.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});  }// 修改功能 监听器实现{updatemenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdatePanel.getPanel(Menu.this.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});updatemenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdatePanel.getPanel(Menu.this.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});}// 账号功能 监听器实现{accessmenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdateUserPanel.getPanel(Menu.this.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});accessmenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdateUserPanel.getPanel(Menu.this.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});accessmenuItem3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = AccountPanel.getPanel(Menu.this.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});accessmenuItem4.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {Menu.Frame.remove(Menu.Panel); // 移除当前的布局Frame.repaint();Panel  = AccountPanel.getPanel(Menu.this.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});}menubar.add(addmenu);menubar.add(removemenu);menubar.add(findmenu);menubar.add(updatemenu);menubar.add(accessmenu);}public static JFrame getFrame() {return Frame;}
}

笔者这里由于增删改查界面设计繁琐,亦限于篇幅,只展示‘查’的这一部分FindPanel.java:

package com.wu.JavaView;import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;import com.wu.JavaBean.Root;
import com.wu.JavaBean.Student;
import com.wu.JavaService.DealString;
import com.wu.JavaService.Find;/**
* @date 2020年12月16日上午10:09:35
* @author 一夜星尘
*/
public class FindPanel {private static JPanel Panel = null;private static JFrame Frame = null;private static String username = null;private static Icon buttonicon = new ImageIcon("src\\images\\searchbutton.png");public static JPanel getPanel(String username,int flag) {Frame = Menu.getFrame(); // 同一FrameFindPanel.username = username;Panel = new JPanel();                //生成新的布局Panel.setLayout(null);              // 绝对布局Panel.setBounds(0,0,790,567); //设置布局大小Panel.setBackground(Color.LIGHT_GRAY);setMenu(); // 设置菜单项find(flag); // 增添学生或管理员 flag 1:学生 2 :管理员return Panel;}public static void setMenu() {// 菜单条JMenuBar menubar = new JMenuBar();menubar.setBounds(0,0,800,40);Panel.add(menubar);//菜单项JMenu addmenu = new JMenu("添加");JMenuItem addmenuItem1 = new JMenuItem("添加学生");JMenuItem addmenuItem2 = new JMenuItem("添加管理员");addmenu.add(addmenuItem1);addmenu.add(addmenuItem2);JMenu removemenu = new JMenu("删除");JMenuItem removemenuItem1 = new JMenuItem("删除学生");JMenuItem removemenuItem2 = new JMenuItem("删除管理员");removemenu.add(removemenuItem1);removemenu.add(removemenuItem2);JMenu findmenu = new JMenu("查找");JMenuItem findmenuItem1 = new JMenuItem("查找学生");JMenuItem findmenuItem2 = new JMenuItem("查找管理员");findmenu.add(findmenuItem1);findmenu.add(findmenuItem2);JMenu updatemenu = new JMenu("修改");JMenuItem updatemenuItem1 = new JMenuItem("修改学生");JMenuItem updatemenuItem2 = new JMenuItem("修改管理员");updatemenu.add(updatemenuItem1);updatemenu.add(updatemenuItem2);JMenu accessmenu = new JMenu("账号设置");JMenuItem accessmenuItem1 = new JMenuItem("修改用户名");JMenuItem accessmenuItem2 = new JMenuItem("修改密码");     JMenuItem accessmenuItem3 = new JMenuItem("退出账号");JMenuItem accessmenuItem4 = new JMenuItem("注销账号");accessmenu.add(accessmenuItem1);accessmenu.add(accessmenuItem2);accessmenu.add(accessmenuItem3);accessmenu.add(accessmenuItem4);// 添加功能 响应{addmenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = AddPanel.getPanel(FindPanel.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});addmenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = AddPanel.getPanel(FindPanel.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});     }//移除功能 响应{removemenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = RemovePanel.getPanel(FindPanel.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});removemenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = RemovePanel.getPanel(FindPanel.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});}//查看功能 响应{findmenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = FindPanel.getPanel(FindPanel.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});findmenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = FindPanel.getPanel(FindPanel.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});  }//修改功能 响应{updatemenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdatePanel.getPanel(FindPanel.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});updatemenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdatePanel.getPanel(FindPanel.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});}//账号功能 响应{accessmenuItem1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdateUserPanel.getPanel(FindPanel.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});accessmenuItem2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = UpdateUserPanel.getPanel(FindPanel.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});accessmenuItem3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = AccountPanel.getPanel(FindPanel.username,1); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});accessmenuItem4.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {FindPanel.Frame.remove(FindPanel.Panel); // 移除当前的布局Frame.repaint();Panel  = AccountPanel.getPanel(FindPanel.username,2); // 切换布局Frame.add(Panel);Frame.setVisible(true);}});}menubar.add(addmenu);menubar.add(removemenu);menubar.add(findmenu);menubar.add(updatemenu);menubar.add(accessmenu);}public static void find(int flag) {if(flag == 1) {DefaultTableModel model = new DefaultTableModel();JTable table = new JTable(model);JScrollPane scrollpanel = new JScrollPane(table);scrollpanel.setBounds(0,80,800 ,560);Panel.add(scrollpanel);JLabel title = new JLabel("学生信息查询");title.setBounds(200,45,90,30);Panel.add(title);String[] Attribute = {"姓名","性别","学号","班级"};// 构建搜索框JTextField searchtext = new JTextField();searchtext.setBounds(300,45,160,30);Panel.add(searchtext);JButton search = new JButton(buttonicon);search.setBounds(460,45,30,30);Panel.add(search);// 搜索功能 响应{search.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {String search = searchtext.getText();String[] deal = DealString.deal(search); // 第一个位置为对应的查找方式 第二至最后一个位置为存放的相应的信息int pos = Integer.parseInt(deal[0]);Object[][] dataVector = getStudentDateVector(new Student(deal[1],deal[2],deal[3],deal[4]),pos);
//                      System.out.println(deal[1]+deal[2]+deal[3]+deal[4]+pos);model.setDataVector(dataVector, Attribute);}});}Object[][]  dataVector = getStudentDateVector(new Student(),0); // 默认为查看所有学生model.setDataVector(dataVector, Attribute);}else if(flag == 2) {try{if(Find.getAccess(FindPanel.username).equals("0")) {JOptionPane.showMessageDialog(null, "权限不够,无法访问!", "错误",JOptionPane.WARNING_MESSAGE);}else {DefaultTableModel model = new DefaultTableModel();JTable table = new JTable(model);JScrollPane scrollpanel = new JScrollPane(table);scrollpanel.setBounds(0,80,800 ,560);Panel.add(scrollpanel);JLabel title = new JLabel("管理员信息查询");title.setBounds(360,45,90,30);Panel.add(title);String[] Attribute = {"用户名","密码"};Object[][]  dataVector = getRootDateVector(new Root(FindPanel.username,"","")); // 查看所有管理员model.setDataVector(dataVector, Attribute);}}catch(Exception e) {e.printStackTrace();JOptionPane.showMessageDialog(null, "权限不够,无法访问!", "错误",JOptionPane.WARNING_MESSAGE);}}}public static String[][] getStudentDateVector(Student student,int pos){try {String[][] data = new String[Find.getCount()][4];ArrayList<Student> studentlist = Find.findStduent(student, pos);int i = 0;for(Student s : studentlist) {data[i][0] = s.getName();data[i][1] = s.getGender();data[i][2] = s.getId();data[i][3] = s.getTeam();i++;}return data;}catch(Exception e) {e.printStackTrace();return null;}}public static String[][] getRootDateVector(Root root){try {String[][] data = new String[Find.getCount()][2];ArrayList<Root> rootlist = Find.findRoot(root);int i = 0;for(Root r : rootlist) {data[i][0] = r.getUsername();data[i][1] = r.getPassword();i++;}return data;}catch(Exception e) {e.printStackTrace();return null;}}
}

具体效果如下:


支持模糊查询,即通过 属性1=内容1&属性2=内容2 可以配合%_两个符号查询

这里笔者为了简单,没有精雕细琢,读者可以根据自己的需要修改即可。

JavaSwing 小型学生管理系统相关推荐

  1. Eclipse+MySql+JavaSwing(WindowBuilder)学生管理系统

    文章目录 界面展示 一.环境搭建 二.项目目录介绍 三.WindowBuilder的使用 四.MySql连接Eclipse 五.数据库信息 六.部分代码展示 七.小坑避免 测试数据 界面展示 登录界面 ...

  2. iOS开发 ----- 学生管理系统改进版

    之前的那个demo没有添加本地文件读写功能,所以每次都比较麻烦,要输入很多东西,才能看到系统的真面目,所以,今天改进了一下,可以读取本地文件,每次操作后都会保存到文件中,以免发生bug导致数据丢失,没 ...

  3. 基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业

    基于JavaSwing开发学生信息管理系统(SQLServer数据库版本):   (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+SQLServer数据库 运行 ...

  4. c语言学生成绩系统综合实验,C语言学生管理系统_综合实验报告.docx

    佛山科学技术学院 实验报告 实验名称小型学生信息管理系统 实验项目 编写一学生信息管理系统,用来管理学生基本信息及成绩信息 专业班级姓名XXX学号 指导教师 成绩 日期 .试验目的 本实验为学生提供了 ...

  5. 学生管理系统课程设计

    学生管理系统课程设计 文章目录 一.课程设计目的 二.课程设计内容和要求 三.任务完成情况 四.设计报告 4.1需求分析 4.1.1用户需求 4.2概要设计 4.2.1总体设计 4.2.2各功能函数的 ...

  6. (附源码)ssm学生管理系统 毕业设计 141543

    基于ssm学生管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用 ...

  7. java计算机毕业设计小型酒店管理系统源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计小型酒店管理系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计小型酒店管理系统源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈 ...

  8. 基于SpringBoot的社区小型图书管理系统的设计与实现

    作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...

  9. 学生管理系统(Java版)

    学生管理系统(Java版) 前言:这个是大二做的课设(还是学生管理系统-),理论上虽然是4个人一组一起做的,但是,注意这个"但是",还是我一个人承担了所有-代码和文档基本都是我一个 ...

最新文章

  1. OpenCV 【四】————Watershed Algorithm(图像分割)——分水岭算法的原理及实现
  2. Basler相机Pylon4配置VC++6.0
  3. RateLimiter 的底层实现是啥?
  4. 如何通过url访问的方式获取HANA report的元数据metadata
  5. android 模拟器read-only file system,WAC启动Android模拟器 transfer error: Read-only file system错误解决方法...
  6. [置顶]千年潜规则一语道破
  7. feign post 传递空值_别再问 GET 和 POST 有什么不同了
  8. ASP.NET中Request.InputStream使用
  9. 微博android4.1.2,Fuubo微博(新浪微博第三方客户端)app
  10. Modown v4.11+Erphpdown10.01资源付费下载插件
  11. 【C#】动态数字时钟和日历
  12. 为PXI硬件选择合适的设备驱动程序–VISA还是IVI?
  13. 产品经理不能错过的五种电商类产品原型模板汇集
  14. 租的房子里有无线路由器有ip和dns服务器无密码可以联网吗,没网怎么设置路由器?...
  15. 助力课堂智能点名 | 爱莫AI场景化应用(四)
  16. OFDM系统中为什么子载波间隔△f是符号周期Ts的倒数
  17. wxtemple.class.php,ThinkPHP3.2.3实现推送微信模板消息
  18. less 和 sass 配置
  19. java unicode是什么意思_(转)谈谈对Java中Unicode、编码的理解
  20. child_process.spawn中文乱码

热门文章

  1. 单片机c51语言变量,单片机c语言教程:C51变量
  2. openc 图片旋转 ;OpenCvSharp 图片旋转
  3. tp6 关于微信小程序的一个转账demo
  4. 使用SQL语句查询学生数据库中学生信息 —14条基本查询语句
  5. 服务器测试之网卡bond测试
  6. 【信号与系统】如何理解冲激信号
  7. LinuxShell编程-脑洞实验-脚本小程序
  8. 树莓派4B安装OpenCV教程
  9. C#与虚拟器 测试测量行业重磅推荐 SeeSharp Tools 介绍 - 1
  10. 数据结构题集(c语言版)第2章:线性表