写一个java语言为主结合数据库的请假管理系统
时间: 2023-12-24 16:04:32 浏览: 24
好的,我可以帮你设计一个基于Java语言和数据库的请假管理系统。
首先,我们需要确定系统的功能模块,包括请假申请模块、请假审核模块、请假统计模块等。
接着,我们需要设计数据库表结构,可以创建以下表:
- 用户表(user):存储用户信息,包括用户ID、用户名、密码等。
- 请假表(leave):存储请假信息,包括请假ID、请假人ID、请假类型、请假开始时间、请假结束时间、请假原因、请假状态等。
- 审核表(review):存储审核信息,包括审核ID、审核人ID、请假ID、审核状态、审核备注等。
然后,我们可以开始编写Java代码。以下是一个简单的代码示例:
1. 用户登录模块
```java
import java.sql.*;
public class Login {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "password");
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM user WHERE username = '" + username + "' AND password = '" + password + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
// 登录成功,跳转到请假申请页面
} else {
// 登录失败,提示用户名或密码错误
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
2. 请假申请模块
```java
import java.sql.*;
public class LeaveApplication {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "password");
Statement stmt = conn.createStatement();
String sql = "INSERT INTO leave (user_id, type, start_time, end_time, reason, status) VALUES ('" + user_id + "', '" + type + "', '" + start_time + "', '" + end_time + "', '" + reason + "', '0')";
stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
3. 请假审核模块
```java
import java.sql.*;
public class LeaveReview {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "password");
Statement stmt = conn.createStatement();
String sql = "UPDATE leave SET status = '" + status + "' WHERE id = '" + leave_id + "'";
stmt.executeUpdate(sql);
sql = "INSERT INTO review (user_id, leave_id, status, remark) VALUES ('" + user_id + "', '" + leave_id + "', '" + status + "', '" + remark + "')";
stmt.executeUpdate(sql);
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
4. 请假统计模块
```java
import java.sql.*;
public class LeaveStatistics {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root", "password");
Statement stmt = conn.createStatement();
String sql = "SELECT COUNT(*) FROM leave WHERE user_id = '" + user_id + "'";
ResultSet rs = stmt.executeQuery(sql);
if (rs.next()) {
int count = rs.getInt(1);
// 显示请假次数
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
以上代码仅为示例,实际项目中还需要进行更多的优化和功能完善。同时,为了保证系统的安全性,还需要进行数据加密、用户权限管理等方面的处理。