1、 项目概述
1.1 项目主要内容
Java Swing开发简单的学生信息管理系统,实现增加,删除,修改,查询的操作。
1.2 项目需求分析
1.开发简单的学生信息管理系统。
2.能实现对学生信息的增加,删除,查询,修改功能。
2、 项目设计
2.1 项目目标
根据上面的需求分析,学生成绩管理系统要达到的目标:
(1)存储学生的基本信息。
(2)增加修改和删除学生信息,
(3)查询想要的学生信息。
2.2 构建开发环境
【1】系统开发平台:IDEA Java开发环境,MySql。
【2】系统开发语言:Java编程语言,sql语言。
【3】运行平台:IDEA
2.3 系统功能结构
【1】 增加功能
try {
conn = DBUtil.getConn();
if (conn==null){
return false;
}
ps = conn.prepareStatement(sql);
ps.setString(1, adminDo.getUserName());
resultSet = ps.executeQuery();
while (resultSet.next()) {
String pwd = resultSet.getString(1);
if (adminDo.getPwd().equals(pwd)) {
return true;
}
【2】 查找功能
try {
conn=DBUtil.getConn();
ps=conn.prepareStatement(sql.toString());
rs=ps.executeQuery();
//查询记录
returnDTO.setData(extracted(rs));
sql.setLength(0);
sql.append("select count(*) from student");
if(request.getSearchKey()!=null&&!"".equals(request.getSearchKey().trim())) {
sql.append("where name like '% "+request.getSearchKey().trim()+"%'");
}
2.4 系统业务流程图
3.公共类设计
- public class MainView extends JFrame//主界面的显示
- public class LoginView extends JFrame //登录界面
- public class LoginHandler extends KeyAdapter implements ActionListener //加入监听
- public class AdminDo//添加用户信息
- public class MainViewCellRender extends DefaultTableCellRenderer
//在每一行的每一列显示之前都会调用,隔行换色,居中
- public class MainViewTable extends JTable//表格的设置,包括渲染方式
- public class MainViewTableModel extends DefaultTableModel //学生属性的类
- public class StudentServiceImpl implements StudentService //处理学生记录
- public class JtableDemo extends JFrame //加入学生信息
- public class StudentRequest//写入或返回学生信息
4、详细设计
4.1 登录页面的设计
【1】 设计登录页面
【2】 代码实现:
public class LoginView extends JFrame {
JLabel nameLabel=new JLabel("学生信息管理系统",JLabel.CENTER);
SpringLayout springLayout=new SpringLayout();
JPanel centerPanel=new JPanel(springLayout);
JLabel userNameLabel=new JLabel("用户名:");
JTextField userTxt=new JTextField();
JLabel pwdLabel=new JLabel("密码:");
JPasswordField pwdField=new JPasswordField();
JButton loginBtn=new JButton("登录");
JButton resetBtn=new JButton("重置");
SystemTray systemTray;
TrayIcon trayIcon;
LoginHandler loginHandler;
public LoginView(){
super("学生管理系统");
4.2 学生信息项目:
【1】学生的包含属性
【2】代码实现:
public class MainViewTableModel extends DefaultTableModel {
static Vector<String> columns=new Vector<>();
static {
columns.addElement("学号");
columns.addElement("姓名");
columns.addElement("学院");
columns.addElement("专业");
columns.addElement("班级");
}
private MainViewTableModel(){
super(null,columns);
}
4.3 获取数据库链接:
【1】连接到数据库
【2】代码实现:
public static Connection getConn(){
try {
return DriverManager.getConnection(URL,USER_NAME,PWD);
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
//获取数据库连接
public static void closeConn(Connection connection){
if (connection!=null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
4.4 设置表格列的渲染方式
【1】表格列之间深浅色交换
【2】代码实现:
public void renderRule(){
Vector<String> columns= MainViewTableModel.getColumns();
MainViewCellRender render=new MainViewCellRender();
for (int i = 0; i < columns.size(); i++) {
TableColumn column =getColumn(columns.get(i));
column.setCellRenderer(render);
if (i==0){
column.setPreferredWidth(50);
column.setMaxWidth(50);
column.setResizable(false);
}
}
4.5 确认用户存在:
【1】用户存在才能允许登录
【2】代码实现:
private void extracted() {
String user= loginView.getUserTxt().getText();
char[] chars=loginView.getPwdField().getPassword();
if (user==null||"".equals(user.trim())||chars==null){
JOptionPane.showMessageDialog(loginView,"用户名密码必填");
return;
}
String pwd=new String(chars);
System.out.println(user+":"+pwd);
//查询db,当数据库里也有相应的用户名和密码时才能登陆
5.运行结果: