JavaSwing 小型学生管理系统
在项目中建立四个包,分别是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 小型学生管理系统相关推荐
- Eclipse+MySql+JavaSwing(WindowBuilder)学生管理系统
文章目录 界面展示 一.环境搭建 二.项目目录介绍 三.WindowBuilder的使用 四.MySql连接Eclipse 五.数据库信息 六.部分代码展示 七.小坑避免 测试数据 界面展示 登录界面 ...
- iOS开发 ----- 学生管理系统改进版
之前的那个demo没有添加本地文件读写功能,所以每次都比较麻烦,要输入很多东西,才能看到系统的真面目,所以,今天改进了一下,可以读取本地文件,每次操作后都会保存到文件中,以免发生bug导致数据丢失,没 ...
- 基于JavaSwing开发学生信息管理系统(SQLServer数据库版本) 毕业设计 课程设计 大作业
基于JavaSwing开发学生信息管理系统(SQLServer数据库版本): (大作业) 开发环境: Windows操作系统 开发工具: MyEclipse+Jdk+SQLServer数据库 运行 ...
- c语言学生成绩系统综合实验,C语言学生管理系统_综合实验报告.docx
佛山科学技术学院 实验报告 实验名称小型学生信息管理系统 实验项目 编写一学生信息管理系统,用来管理学生基本信息及成绩信息 专业班级姓名XXX学号 指导教师 成绩 日期 .试验目的 本实验为学生提供了 ...
- 学生管理系统课程设计
学生管理系统课程设计 文章目录 一.课程设计目的 二.课程设计内容和要求 三.任务完成情况 四.设计报告 4.1需求分析 4.1.1用户需求 4.2概要设计 4.2.1总体设计 4.2.2各功能函数的 ...
- (附源码)ssm学生管理系统 毕业设计 141543
基于ssm学生管理系统 摘 要 随着互联网趋势的到来,各行各业都在考虑利用互联网将自己推广出去,最好方式就是建立自己的互联网系统,并对其进行维护和管理.在现实运用中,应用软件的工作规则和开发步骤,采用 ...
- java计算机毕业设计小型酒店管理系统源码+系统+数据库+lw文档+mybatis+运行部署
java计算机毕业设计小型酒店管理系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计小型酒店管理系统源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈 ...
- 基于SpringBoot的社区小型图书管理系统的设计与实现
作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue.SpringBoot和微信小程序).系统定制.远程技术指导. ...
- 学生管理系统(Java版)
学生管理系统(Java版) 前言:这个是大二做的课设(还是学生管理系统-),理论上虽然是4个人一组一起做的,但是,注意这个"但是",还是我一个人承担了所有-代码和文档基本都是我一个 ...
最新文章
- OpenCV 【四】————Watershed Algorithm(图像分割)——分水岭算法的原理及实现
- Basler相机Pylon4配置VC++6.0
- RateLimiter 的底层实现是啥?
- 如何通过url访问的方式获取HANA report的元数据metadata
- android 模拟器read-only file system,WAC启动Android模拟器 transfer error: Read-only file system错误解决方法...
- [置顶]千年潜规则一语道破
- feign post 传递空值_别再问 GET 和 POST 有什么不同了
- ASP.NET中Request.InputStream使用
- 微博android4.1.2,Fuubo微博(新浪微博第三方客户端)app
- Modown v4.11+Erphpdown10.01资源付费下载插件
- 【C#】动态数字时钟和日历
- 为PXI硬件选择合适的设备驱动程序–VISA还是IVI?
- 产品经理不能错过的五种电商类产品原型模板汇集
- 租的房子里有无线路由器有ip和dns服务器无密码可以联网吗,没网怎么设置路由器?...
- 助力课堂智能点名 | 爱莫AI场景化应用(四)
- OFDM系统中为什么子载波间隔△f是符号周期Ts的倒数
- wxtemple.class.php,ThinkPHP3.2.3实现推送微信模板消息
- less 和 sass 配置
- java unicode是什么意思_(转)谈谈对Java中Unicode、编码的理解
- child_process.spawn中文乱码