1.项目需求
实现一个基于JavaSE+MySQL的学生宿舍管理系统,能对学生进行增删改查。
2.数据表设计
admininfo(管理员表)
建表语句:
CREATE TABLE `admininfo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(255) DEFAULT NULL COMMENT '用户名',
`password` varchar(255) DEFAULT NULL COMMENT '密码',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
student(学生表)
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`code` varchar(255) DEFAULT NULL COMMENT '学号',
`name` varchar(255) DEFAULT NULL COMMENT '姓名',
`gender` varchar(255) DEFAULT NULL COMMENT '性别',
`phone` varchar(255) DEFAULT NULL COMMENT '手机号',
`college` varchar(255) DEFAULT NULL COMMENT '学院',
`major` varchar(255) DEFAULT NULL COMMENT '专业',
`grade` varchar(255) DEFAULT NULL COMMENT '班级',
`area` varchar(255) DEFAULT NULL COMMENT '小区',
`building` varchar(255) DEFAULT NULL COMMENT '楼栋',
`dormitory` varchar(255) DEFAULT NULL COMMENT '宿舍号',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
3.架构设计
项目采用C/S架构,使用MySQL数据库。
4.项目代码目录结构
dao:数据操作类。
dbutil:数据库连接获取工具类。
entity:实体类包。
login:程序启动包,启动类所在包。
main:界面包,所有界面类均放在此包下。
5.项目截图
登录页面
首页
添加页面
修改页面
6.核心代码
数据库工具类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionUtil {
private static final String DRIVERNAME = "com.mysql.jdbc.Driver";
private static final String DBURL = "jdbc:mysql://localhost:3306/dormitorymanagesys?characterEncoding=UTF-8";
private static final String USER = "root";
private static final String PWD = "root";
private static Connection conn = null;
public static Connection getConnection() {
try {
Class.forName(DRIVERNAME);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(DBURL,USER, PWD);
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
}
增强JPanel,可设置背景图片
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Point;
import javax.swing.JPanel;
public class ImagePanel extends JPanel{
private Image image = null;
private boolean isMoued;
private Point pre_point;
private Point end_point;
public ImagePanel(Image image){
this.image = image;
this.setSize(1085, 58);
this.setBackground(Color.GREEN);
}
//固定背景图片,允许这儿JPanel可以在图片上添加其他组件
protected void paintComponent(Graphics g){
g.drawImage(image, 0, 0, this.getWidth(), this.getHeight(),this);
}
}
使用UIManager优化页面显示效果
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");