员工管理系统实战:JDBC操作SQL实现员工入职、离职、调薪及分页查询
员工管理系统实战:JDBC操作SQL实现员工入职、离职、调薪及分页查询
本教程将带领你使用JDBC连接数据库,并通过SQL语句实现员工管理系统中的核心功能,包括员工入职、离职、调薪、查询部门员工以及分页查询员工等操作。详细讲解代码实现过程,帮助你快速上手员工管理系统的开发。
1. 数据准备
首先,我们需要创建一个名为'employee'的员工表,并添加一些测试数据。以下SQL语句用于创建表和插入数据:
/*
Navicat Premium Data Transfer
Source Server : myconn
Source Server Type : MySQL
Source Server Version : 80031
Source Host : localhost:3306
Source Schema : xja
Target Server Type : MySQL
Target Server Version : 80031
File Encoding : 65001
Date: 06/08/2023 22:24:23
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for employee
-- ----------------------------
DROP TABLE IF EXISTS `employee`;
CREATE TABLE `employee` (
`eno` int(0) NOT NULL,
`ename` varchar(64) CHARACTER SET utf8mb4 NOT NULL,
`salary` float(10, 2) NOT NULL,
`dname` varchar(64) CHARACTER SET utf8mb4 NOT NULL,
`hiredate` varchar(20) NULL DEFAULT NULL,
PRIMARY KEY (`eno`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of employee
-- ----------------------------
INSERT INTO `employee` VALUES (1000, '员工1000', 5000.00, '市场部', '1992-03-04');
INSERT INTO `employee` VALUES (1001, '员工1001', 3500.00, '市场部', '1988-02-18');
INSERT INTO `employee` VALUES (1002, '员工1002', 4000.00, '市场部', '1996-02-01');
INSERT INTO `employee` VALUES (1003, '员工1003', 4000.00, '市场部', '2001-08-21');
INSERT INTO `employee` VALUES (1004, '员工1004', 4000.00, '市场部', '2003-01-02');
INSERT INTO `employee` VALUES (1005, '员工1005', 4000.00, '市场部', '1996-07-28');
INSERT INTO `employee` VALUES (1006, '员工1006', 4000.00, '市场部', '1999-12-30');
INSERT INTO `employee` VALUES (1007, '员工1007', 4000.00, '市场部', '2009-05-30');
INSERT INTO `employee` VALUES (1008, '员工1008', 4000.00, '市场部', '1984-05-30');
INSERT INTO `employee` VALUES (1009, '员工1009', 4000.00, '市场部', '2004-05-07');
INSERT INTO `employee` VALUES (3308, '张三', 6000.00, '研发部', '2011-05-08');
INSERT INTO `employee` VALUES (3420, '李四', 8700.00, '研发部', '2006-11-11');
INSERT INTO `employee` VALUES (3610, '王五', 4550.00, '市场部', '2009-10-01');
SET FOREIGN_KEY_CHECKS = 1;
2. 功能实现
以下功能将在Idea的控制台中使用JDBC实现:
- 查询部门员工
- 使用JDBC编写代码,连接数据库,执行SQL语句实现查询部门员工的功能。SQL语句如下:
SELECT * FROM employee WHERE dname = '市场部'; - 办理员工入职
- 使用JDBC编写代码,连接数据库,执行SQL语句实现办理员工入职的功能。SQL语句如下:
INSERT INTO employee VALUES (1010, '员工1010', 4000.00, '市场部', '2023-06-09'); - 调整员工薪资
- 使用JDBC编写代码,连接数据库,执行SQL语句实现调整员工薪资的功能。SQL语句如下:
UPDATE employee SET salary = 4500.00 WHERE eno = 1000; - 员工离职
- 使用JDBC编写代码,连接数据库,执行SQL语句实现员工离职的功能。SQL语句如下:
DELETE FROM employee WHERE eno = 1000; - 分页查询员工
- 使用JDBC编写代码,连接数据库,执行SQL语句实现分页查询员工的功能。SQL语句如下:
其中0表示起始位置,5表示每页显示的记录数。可以根据需要修改起始位置和每页显示的记录数。SELECT * FROM employee LIMIT 0,5;
3. 代码示例
以下是一个使用JDBC连接数据库并执行SQL语句的示例代码:
import java.sql.*;
public class EmployeeManager {
public static void main(String[] args) {
// 数据库连接信息
String url = 'jdbc:mysql://localhost:3306/xja';
String user = 'root';
String password = '你的密码';
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
// 查询部门员工
String sql = 'SELECT * FROM employee WHERE dname = '市场部'';
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt('eno') + ', ' + rs.getString('ename') + ', ' + rs.getFloat('salary') + ', ' + rs.getString('dname') + ', ' + rs.getString('hiredate'));
}
// 办理员工入职
sql = 'INSERT INTO employee VALUES (1010, '员工1010', 4000.00, '市场部', '2023-06-09')';
int rowsAffected = stmt.executeUpdate(sql);
System.out.println('添加了 ' + rowsAffected + ' 行数据。');
// 调整员工薪资
sql = 'UPDATE employee SET salary = 4500.00 WHERE eno = 1000';
rowsAffected = stmt.executeUpdate(sql);
System.out.println('更新了 ' + rowsAffected + ' 行数据。');
// 员工离职
sql = 'DELETE FROM employee WHERE eno = 1000';
rowsAffected = stmt.executeUpdate(sql);
System.out.println('删除了 ' + rowsAffected + ' 行数据。');
// 分页查询员工
sql = 'SELECT * FROM employee LIMIT 0,5';
rs = stmt.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt('eno') + ', ' + rs.getString('ename') + ', ' + rs.getFloat('salary') + ', ' + rs.getString('dname') + ', ' + rs.getString('hiredate'));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
注意:
- 以上代码仅供参考,你需要根据实际情况修改数据库连接信息、SQL语句以及代码逻辑。
- 请确保你的数据库已成功安装并配置,并且你拥有相应的数据库访问权限。
- 以上代码示例仅展示了基本的数据库操作,实际应用中可能需要更复杂的逻辑和错误处理机制。
通过本教程,你将学会使用JDBC连接数据库并执行SQL语句,从而实现基本的员工管理系统功能。希望本教程能够帮助你快速上手员工管理系统的开发。
更多学习资源:
原文地址: https://www.cveoy.top/t/topic/oxV3 著作权归作者所有。请勿转载和采集!