Java+Swing+mysql5实现学生成绩管理系统带分页
一、系统介绍
1.系统功能
1.登录系统
2.添加学生成绩
3.学生成绩列表
4.查询学生成绩
5.修改学生成绩
6.删除学生成绩
7.退出系统
2.环境配置
JDK版本:1.8
Mysql:5.7
3.数据库
/*
SQLyog Enterprise v12.09 (64 bit)
MySQL - 5.7.14 : Database - swing_stuscore
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`swing_stuscore` /*!40100 DEFAULT CHARACTER SET latin1 */;
USE `swing_stuscore`;
/*Table structure for table `stuscore` */
DROP TABLE IF EXISTS `stuscore`;
CREATE TABLE `stuscore` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`chinese` int(11) DEFAULT '0',
`math` int(11) DEFAULT '0',
`english` int(11) DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
/*Data for the table `stuscore` */
insert into `stuscore`(`id`,`name`,`chinese`,`math`,`english`) values (1,'郭思懿',92,86,98),(2,'翟若冰',82,80,98),(3,'李倩怡',82,75,97),(4,'郑嘉诗',76,63,91),(5,'彭晓茹',81,82,86),(6,'黄伦蜜',71,14,49),(7,'陈春林',49,33,45),(8,'叶少锦',62,25,23),(9,'骆水源',46,43,20),(10,'李新荣',73,18,50),(11,'郑嘉彬',66,59,55),(12,'郑荣辉',60,60,52),(13,'王家祥',76,56,69);
/*Table structure for table `user` */
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`userpass` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
/*Data for the table `user` */
insert into `user`(`id`,`username`,`userpass`) values (1,'admin','123456');
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
4.工程截图
二、系统展示
1.登录页
1.1登录成功
2.添加学生成绩
3.学生成绩列表
最后一页
4.查询学生成绩
5.修改学生成绩
6.删除学生成绩
7.退出系统
三、部分代码
DBConn.java
package cn.com.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Statement;
public class DBConn {
private static String driverName = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/swing_stuscore?characterEncoding=utf8";
private static String userName = "root";
private static String password = "root";
private Connection conn;
private Statement stmt;
public DBConn() {
try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
/**
* 连接数据库
*
* @return
* @throws SQLException
*/
public Connection getConnection() throws SQLException {
return DriverManager.getConnection(url, userName, password);
}
/**
* 释放资源
*/
public void close() {
try {
if (conn != null) {
conn.close();
}
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
LoginFrm.java
package cn.com.view;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import javax.swing.GroupLayout;
import javax.swing.GroupLayout.Alignment;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.LayoutStyle.ComponentPlacement;
import javax.swing.border.EmptyBorder;
import cn.com.dao.UserDao;
import cn.com.model.User;
import cn.com.util.DBConn;
import cn.com.util.StringUtil;
public class LoginFrm extends JFrame {
private JPanel contentPane;
private JTextField username_txt;
private JPasswordField password_txt;
private DBConn db=new DBConn();
private UserDao userDao=new UserDao();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginFrm frame = new LoginFrm();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public LoginFrm() {
setResizable(false);
setTitle("\u7BA1\u7406\u5458\u767B\u5F55");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JLabel lblNewLabel = new JLabel("\u5B66\u751F\u6210\u7EE9\u7BA1\u7406\u7CFB\u7EDF");
lblNewLabel.setFont(new Font("微软雅黑", Font.PLAIN, 24));
JLabel lblNewLabel_1 = new JLabel("\u7528\u6237\u540D:");
JLabel lblNewLabel_2 = new JLabel("\u5BC6\u7801:");
username_txt = new JTextField();
username_txt.setColumns(10);
password_txt = new JPasswordField();
JButton btnNewButton = new JButton("\u767B\u5F55");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
LoginActionPerformed(e);
}
});
JButton btnNewButton_1 = new JButton("\u91CD\u7F6E");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
ResetActionPerformed(e);
}
});
GroupLayout gl_contentPane = new GroupLayout(contentPane);
gl_contentPane.setHorizontalGroup(
gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(114)
.addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING)
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(lblNewLabel_2)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(password_txt, 224, 224, 224)
.addPreferredGap(ComponentPlacement.RELATED))
.addGroup(gl_contentPane.createSequentialGroup()
.addComponent(lblNewLabel_1)
.addPreferredGap(ComponentPlacement.RELATED)
.addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING)
.addComponent(lblNewLabel)
.addComponent(username_txt, 226, 226, 226))))
.addGap(48))
.addGroup(Alignment.LEADING, gl_contentPane.createSequentialGroup()
.addGap(153)
.addComponent(btnNewButton)
.addPreferredGap(ComponentPlacement.UNRELATED)
.addComponent(btnNewButton_1)
.addContainerGap(157, Short.MAX_VALUE))
);
gl_contentPane.setVerticalGroup(
gl_contentPane.createParallelGroup(Alignment.LEADING)
.addGroup(gl_contentPane.createSequentialGroup()
.addGap(50)
.addComponent(lblNewLabel)
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel_1)
.addComponent(username_txt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(lblNewLabel_2)
.addComponent(password_txt, GroupLayout.PREFERRED_SIZE, GroupLayout.DEFAULT_SIZE, GroupLayout.PREFERRED_SIZE))
.addGap(18)
.addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE)
.addComponent(btnNewButton)
.addComponent(btnNewButton_1))
.addContainerGap(60, Short.MAX_VALUE))
);
contentPane.setLayout(gl_contentPane);
this.setLocationRelativeTo(null);
}
protected void ResetActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
this.username_txt.setText("");
this.password_txt.setText("");
}
protected void LoginActionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String username=this.username_txt.getText();
String password=new String(this.password_txt.getPassword());
if(StringUtil.isEmpty(username)) {
JOptionPane.showMessageDialog(null, "用户名不能为空");
return;
}
if(StringUtil.isEmpty(password)) {
JOptionPane.showMessageDialog(null, "密码不能为空");
return;
}
User user=new User(username,password);
Connection conn=null;
try {
conn=db.getConnection();
User current_user=userDao.login(conn,user);
if(current_user!=null) {
JOptionPane.showMessageDialog(null, "登录成功");
dispose();
new MainFrm().setVisible(true);
}else {
JOptionPane.showMessageDialog(null, "用户名或者密码错误");
}
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
Stuscore.java
package cn.com.model;
public class Stuscore {
private Integer id;
private String name;
private Integer chinese;
private Integer math;
private Integer english;
public Stuscore() {
super();
// TODO Auto-generated constructor stub
}
public Stuscore(String name, Integer chinese, Integer math,Integer english) {
super();
this.name = name;
this.chinese = chinese;
this.math = math;
this.english = english;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getChinese() {
return chinese;
}
public void setChinese(Integer chinese) {
this.chinese = chinese;
}
public Integer getMath() {
return math;
}
public void setMath(Integer math) {
this.math = math;
}
public Integer getEnglish() {
return english;
}
public void setEnglish(Integer english) {
this.english = english;
}
}
四、其他
获取源码
点击以下链接获取源码,数据库文件在swing_stuscore.sql文件里面。
Java+Swing+mysql5实现学生成绩管理系统(带分页)