JavaSwing实现小型学生管理系统

网友投稿 188 2022-08-25


JavaSwing实现小型学生管理系统

本文实例为大家分享了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 findStduent(Student student,int pos) throws Exception{ // 查询所有学生或者部分学生

// 获取数据库对象

JDBC jdbc = new JDBC();

Connection sqllink = jdbc.getConnection();

PreparedStatement sqlaction = null; // 创建一个数据库操作对象

ResultSet result = null; // 结果集

String sql = "";

ArrayList studentlist = new ArrayList(); // 返回的结果

/**

* 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 findRoot(Root root) throws Exception{ // 完全查找权限

// 获取数据库对象

JDBC jdbc = new JDBC();

Connection sqllink = jdbc.getConnection();

PreparedStatement sqlaction = null; // 创建一个数据库操作对象

ResultSet result = null;

ArrayList rootlist = new ArrayList();

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 hashmap = new HashMap();

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

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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(); // 同一Frame

FindPanel.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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public void actionPerhttp://formed(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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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() {

@Override

public 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 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 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 可以配合%_两个符号查询

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:python--文件操作,enumerate(python 操作文件)
下一篇:python--字典,解包(python *解包)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~