网站设计的尺寸,微信网站是什么意思,网站搜索引擎怎样做,世界政务网站绩效评估指标体系建设一、项目概述
本学生管理系统旨在提供一个方便的界面#xff0c;用于学校或机构管理学生信息#xff0c;包括学生基本信息、课程成绩等。
二、系统架构
系统采用经典的三层架构#xff0c;包括前端使用JavaSwing#xff0c;后端采用Java Servlet#xff0c;数据库使用M…一、项目概述
本学生管理系统旨在提供一个方便的界面用于学校或机构管理学生信息包括学生基本信息、课程成绩等。
二、系统架构
系统采用经典的三层架构包括前端使用JavaSwing后端采用Java Servlet数据库使用MySQL。
三、技术选型
JavaSwing作为前端UI框架。Java Servlet处理后端逻辑。MySQL数据库存储学生信息。
四、安装和配置
下载项目源代码。安装Java Development Kit (JDK)。设置数据库连接配置。运行系统初始化脚本。
1.学生信息管理
在主界面选择“学生管理”。点击“添加学生”按钮输入学生信息。查看学生列表和详细信息。
2.成绩管理
进入“成绩管理”模块。选择课程和学生输入成绩。查看成绩报表。
五、数据库设计
student 表
sid学生ID自增长。sname学生姓名。snumber学号。sage学生年龄。sphone学生电话。saddress学生地址。
示例数据
sidsnamesnumbersagesphonesaddress1styhs1234567892312345678郑州
user 表
uid用户ID自增长。uname用户名。upassword用户密码。
示例数据
uidunameupassword1user1234562user11111113user2111111
六、程序截图 七、代码
DBUtil.java
package studentapp.dal;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;public class DBUtil {private static String driver com.mysql.jdbc.Driver;private static String URL jdbc:mysql://localhost:3306/studentdb?useSSLfalse;private static Connection con null;private static Statement smt null;private static ResultSet rs null;private static Connection createConnection() {try {Class.forName(driver);return DriverManager.getConnection(URL, root, );} catch (SQLException e) {System.out.println(e.getMessage());e.printStackTrace();} catch (java.lang.ClassNotFoundException e) {System.out.println(Cant load Driver);}return null;}public static int runUpdate(String sql) throws SQLException {int count 0;if (con null) {con createConnection();}if (smt null) {smt con.createStatement();}count smt.executeUpdate(sql);if (smt ! null) {smt.close();smt null;}if (con ! null) {con.close();con null;}return count;}public static ResultSet runQuery(String sql) throws SQLException {if (con null) {con createConnection();}if (smt null) {smt con.createStatement();}return smt.executeQuery(sql);}public static void realeaseAll() {if (rs ! null) {try {rs.close();rs null;} catch (SQLException e) {e.printStackTrace();}}if (smt ! null) {try {smt.close();smt null;} catch (SQLException e) {e.printStackTrace();}}if (con ! null) {try {con.close();con null;} catch (SQLException ex) {Logger.getLogger(DBUtil.class.getName()).log(Level.SEVERE, null, ex);}}}public static void closeConnection(Connection conn) {System.out.println(...);try {if (conn ! null) {conn.close();conn null;}} catch (SQLException e) {e.printStackTrace();}}
}
LoginJFrame.java
package studentapp.gui;import java.awt.BorderLayout;
import java.awt.EventQueue;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;import studentapp.dal.Entity.User;
import studentapp.dal.daoimpl.UserDaoImpl;import java.awt.CardLayout;
import java.awt.Event;import javax.swing.JTextField;
import java.awt.FlowLayout;
import javax.swing.JPasswordField;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JMenu;
import javax.swing.SwingConstants;
import javax.swing.JButton;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;public class LoginJFrame extends JFrame {private JPanel contentPane;private JTextField userName;private JPasswordField userPassword;private JTextField adminName;private JPasswordField adminPassword;/*** Launch the application.*/public static void main(String[] args) {EventQueue.invokeLater(new Runnable() {public void run() {try {LoginJFrame frame new LoginJFrame();frame.setVisible(true);} catch (Exception e) {e.printStackTrace();}}});}/*** Create the frame.*/public LoginJFrame() {setTitle(\u767B\u9646\u5B66\u751F\u7BA1\u7406\u7CFB\u7EDF);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setBounds(100, 100, 450, 300);CardLayout cardLayoutnew CardLayout();JMenuBar menuBar new JMenuBar();setJMenuBar(menuBar);JMenu landingOptions new JMenu(\u767B\u9646\u9009\u62E9);menuBar.add(landingOptions);JMenuItem adminOption new JMenuItem(\u7BA1\u7406\u5458\u767B\u9646);adminOption.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {cardLayout.last(contentPane);}});landingOptions.add(adminOption);JMenuItem userOption new JMenuItem(\u7528\u6237\u767B\u9646);userOption.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {cardLayout.first(contentPane);}});landingOptions.add(userOption);contentPane new JPanel();contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));setContentPane(contentPane);contentPane.setLayout(cardLayout);JPanel userPanel new JPanel();contentPane.add(userPanel, name_5600414879778);userPanel.setLayout(null);userName new JTextField();userName.setBounds(148, 55, 122, 21);userPanel.add(userName);userName.setColumns(10);userPassword new JPasswordField();userPassword.setBounds(148, 96, 122, 21);userPanel.add(userPassword);JButton userButton1 new JButton(\u767B\u9646);userButton1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) {userLoginActionPerformed(event);}});userButton1.setBounds(72, 159, 93, 23);userPanel.add(userButton1);JButton userButton2 new JButton(\u6CE8\u518C);userButton2.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent event) {userRegisterActionPerformed(event);}});userButton2.setBounds(220, 159, 93, 23);userPanel.add(userButton2);JLabel lbll new JLabel(\u7528\u6237\u540D\uFF1A);lbll.setBounds(72, 58, 54, 15);userPanel.add(lbll);JLabel label new JLabel(\u5BC6\u7801\uFF1A);label.setBounds(72, 99, 54, 15);userPanel.add(label);JPanel adminPanel new JPanel();contentPane.add(adminPanel, name_5642638031832);adminPanel.setLayout(null);adminName new JTextField();adminName.setBounds(190, 48, 129, 21);adminPanel.add(adminName);adminName.setColumns(10);adminPassword new JPasswordField();adminPassword.setBounds(190, 91, 129, 21);adminPanel.add(adminPassword);JButton adminButton new JButton(\u767B\u9646);adminButton.setBounds(152, 151, 93, 23);adminPanel.add(adminButton);JLabel lblNewLabel new JLabel(\u7BA1\u7406\u5458\u540D\uFF1A);lblNewLabel.setBounds(79, 51, 101, 15);adminPanel.add(lblNewLabel);JLabel lblNewLabel_1 new JLabel(\u7BA1\u7406\u5458\u5BC6\u7801\uFF1A);lblNewLabel_1.setBounds(79, 94, 101, 15);adminPanel.add(lblNewLabel_1);}private void userLoginActionPerformed(ActionEvent event) {String unameuserName.getText();String upassworduserPassword.getText();UserDaoImpl userDaoImplnew UserDaoImpl();if(userDaoImpl.certifyUser(uname, upassword)){JOptionPane.showMessageDialog(this, ¼ɹ);StudentJFrame studentJFramenew StudentJFrame();studentJFrame.setBounds(600, 400, 800, 600);studentJFrame.setVisible(true);this.setVisible(false);this.dispose();}else{JOptionPane.showMessageDialog(this, ¼ʧܣ˺Ż,½ѧϵͳ,JOptionPane.ERROR_MESSAGE);}}private void userRegisterActionPerformed(ActionEvent event) {String unameuserName.getText();String upassworduserPassword.getText();User usernew User(uname,upassword);UserDaoImpl userDaoImplnew UserDaoImpl();if(userDaoImpl.addUser(user)) {JOptionPane.showMessageDialog(this, עɹ);}else {JOptionPane.showMessageDialog(this, עʧ!,עѧϵͳ,JOptionPane.ERROR_MESSAGE);}}}
SimpleTableModel.java package studentapp.gui;import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.table.AbstractTableModel;import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils.Collections;import studentapp.dal.Entity.Student;public class SimpleTableModelT extends AbstractTableModel
{protected ListString cols;protected ListT rows;public SimpleTableModel(ListString cols, ListT rows) {this.cols cols;this.rows rows;}public ListString getCols() {return cols;}public void setCols(ListString cols) {this.cols cols;}public ListT getRows() {return rows;}public void setRows(ListT rows) {this.rows rows;}Overridepublic int getRowCount() {return rows.size();}Overridepublic int getColumnCount() {return cols.size();}Overridepublic String getColumnName(int column) {return cols.get(column);}Overridepublic Object getValueAt(int rowIndex, int columnIndex) {try {ListMethod getMethodsClassRefect.getAllGetMethod(rows.get(rowIndex)); return getMethods.get(columnIndex).invoke(rows.get(rowIndex), null);} catch (IllegalAccessException ex) {Logger.getLogger(SimpleTableModel.class.getName()).log(Level.SEVERE, null, ex);} catch (IllegalArgumentException ex) {Logger.getLogger(SimpleTableModel.class.getName()).log(Level.SEVERE, null, ex);} catch (InvocationTargetException ex) {Logger.getLogger(SimpleTableModel.class.getName()).log(Level.SEVERE, null, ex);}return ;}}
八、交流与联系
q:969060742 文档、代码、sql、程序资源