大数据必学Java基础(一百):员工管理系统开发
2023-06-13 09:15:56 时间
员工管理系统开发
一、DAO接口
package com.lanson.dao;
import com.lanson.pojo.Emp;
import java.util.List;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
public interface EmpDao {
/**
* 向数据库Emp表中增加一条数据的方法
* @param emp 要增加的数据封装成的Emp类的对象
* @return 增加成功返回大于0 的整数,增加失败返回0
*/
int addEmp(Emp emp);
/**
* 根据员工编号删除员工信息的方法
* @param empno 要删除的员工编号
* @return 删除成功返回大于0的整数,失败返回0
*/
int deleteByEmpno(int empno);
/**
* 查看数据库表格中所有的员工信息
* @return 所有员工信息封装的一个List<Emp>集合
*/
List<Emp> findAll();
/**
* 根据员工编号修改员工其他所有字段的方法
* @param emp 员工编号和其他7个字段封装的一个Emp类对象
* @return 修改成功返回大于0的整数,失败返回0
*/
int updateEmp(Emp emp);
}
package com.lanson.dao;
import com.lanson.pojo.Dept;
import java.util.List;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
public interface DeptDao {
/**
* 查询全部门的方法
* @return Dept对象封装的List集合
*/
List<Dept> findAll();
int addDept(Dept dept);
}
二、DAO实现类
package com.lanson.dao.impl;
import com.lanson.dao.EmpDao;
import com.lanson.pojo.Emp;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
public class EmpDaoImpl implements EmpDao {
private static String driver ="com.mysql.cj.jdbc.Driver";
private static String url="jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
private static String user="root";
private static String password="root";
@Override
public int addEmp(Emp emp) {
// 向 Emp表中增加一条数据
Connection connection = null;
PreparedStatement preparedStatement=null;
int rows=0;
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, user,password);
String sql="insert into emp values(DEFAULT ,?,?,?,?,?,?,?)";
preparedStatement = connection.prepareStatement(sql);//这里已经传入SQL语句
//设置参数
preparedStatement.setObject(1,emp.getEname());
preparedStatement.setObject(2,emp.getJob() );
preparedStatement.setObject(3,emp.getMgr());
preparedStatement.setObject(4,emp.getHiredate());
preparedStatement.setObject(5,emp.getSal());
preparedStatement.setObject(6,emp.getComm());
preparedStatement.setObject(7,emp.getDeptno());
//执行CURD
rows =preparedStatement.executeUpdate();// 这里不需要再传入SQL语句
}catch (Exception e){
e.printStackTrace();
}finally {
if(null != preparedStatement){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return rows;
}
@Override
public int deleteByEmpno(int empno) {
// 向 Emp表中增加一条数据
Connection connection = null;
PreparedStatement preparedStatement=null;
int rows=0;
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, user,password);
String sql="delete from emp where empno =?";
preparedStatement = connection.prepareStatement(sql);//这里已经传入SQL语句
//设置参数
preparedStatement.setObject(1,empno);
//执行CURD
rows =preparedStatement.executeUpdate();// 这里不需要再传入SQL语句
}catch (Exception e){
e.printStackTrace();
}finally {
if(null != preparedStatement){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return rows;
}
@Override
public List<Emp> findAll() {
// 查询名字中包含字母A的员工信息
Connection connection = null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
List<Emp> list =null;
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, user,password);
String sql="select * from emp";
preparedStatement = connection.prepareStatement(sql);//这里已经传入SQL语句
//执行CURD
resultSet = preparedStatement.executeQuery();// 这里不需要再传入SQL语句
list=new ArrayList<Emp>() ;
while(resultSet.next()){
int empno = resultSet.getInt("empno");
String ename = resultSet.getString("ename");
String job = resultSet.getString("job");
int mgr = resultSet.getInt("mgr");
Date hiredate = resultSet.getDate("hiredate");
double sal= resultSet.getDouble("sal");
double comm= resultSet.getDouble("comm");
int deptno= resultSet.getInt("deptno");
Emp emp =new Emp(empno, ename, job, mgr, hiredate, sal, comm, deptno);
list.add(emp);
}
}catch (Exception e){
e.printStackTrace();
}finally {
if(null != resultSet){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != preparedStatement){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
@Override
public int updateEmp(Emp emp) {
// 向 Emp表中增加一条数据
Connection connection = null;
PreparedStatement preparedStatement=null;
int rows=0;
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, user,password);
String sql="update emp set ename =? ,job=?, mgr =?,hiredate =?,sal=?,comm=?,deptno=? where empno =?";
preparedStatement = connection.prepareStatement(sql);//这里已经传入SQL语句
//设置参数
preparedStatement.setObject(1,emp.getEname());
preparedStatement.setObject(2,emp.getJob() );
preparedStatement.setObject(3,emp.getMgr());
preparedStatement.setObject(4,emp.getHiredate());
preparedStatement.setObject(5,emp.getSal());
preparedStatement.setObject(6,emp.getComm());
preparedStatement.setObject(7,emp.getDeptno());
preparedStatement.setObject(8,emp.getEmpno());
//执行CURD
rows =preparedStatement.executeUpdate();// 这里不需要再传入SQL语句
}catch (Exception e){
e.printStackTrace();
}finally {
if(null != preparedStatement){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return rows;
}
}
package com.lanson.dao.impl;
import com.lanson.dao.DeptDao;
import com.lanson.pojo.Dept;
import com.lanson.pojo.Emp;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
public class DeptDaoImpl implements DeptDao {
private static String driver ="com.mysql.cj.jdbc.Driver";
private static String url="jdbc:mysql://127.0.0.1:3306/mydb?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
private static String user="root";
private static String password="root";
@Override
public List<Dept> findAll() {
// 查询名字中包含字母A的员工信息
Connection connection = null;
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
List<Dept> list =null;
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, user,password);
String sql="select * from dept";
preparedStatement = connection.prepareStatement(sql);//这里已经传入SQL语句
//执行CURD
resultSet = preparedStatement.executeQuery();// 这里不需要再传入SQL语句
list=new ArrayList<Dept>() ;
while(resultSet.next()){
int deptno = resultSet.getInt("deptno");
String dname = resultSet.getString("dname");
String loc = resultSet.getString("loc");
Dept dept =new Dept(deptno,dname,loc);
list.add(dept);
}
}catch (Exception e){
e.printStackTrace();
}finally {
if(null != resultSet){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != preparedStatement){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return list;
}
@Override
public int addDept(Dept dept) {
// 向 Emp表中增加一条数据
Connection connection = null;
PreparedStatement preparedStatement=null;
int rows=0;
try{
Class.forName(driver);
connection = DriverManager.getConnection(url, user,password);
String sql="insert into dept values(?,?,?)";
preparedStatement = connection.prepareStatement(sql);//这里已经传入SQL语句
//设置参数
preparedStatement.setObject(1,dept.getDeptno());
preparedStatement.setObject(2,dept.getDname());
preparedStatement.setObject(3,dept.getLoc() );
//执行CURD
rows =preparedStatement.executeUpdate();// 这里不需要再传入SQL语句
}catch (Exception e){
e.printStackTrace();
}finally {
if(null != preparedStatement){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(null != connection){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return rows;
}
}
三、EmpManageSystem类
package com.lanson.view;
import com.lanson.dao.DeptDao;
import com.lanson.dao.EmpDao;
import com.lanson.dao.impl.DeptDaoImpl;
import com.lanson.dao.impl.EmpDaoImpl;
import com.lanson.pojo.Dept;
import com.lanson.pojo.Emp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Scanner;
/**
* @Author: Lansonli
* @Description: MircoMessage:Mark_7001
*/
public class EmpManageSystem {
private static Scanner sc =new Scanner(System.in);
private static EmpDao empDao =new EmpDaoImpl();
private static DeptDao deptDao=new DeptDaoImpl();
private static SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");;
public static void main(String[] args) {
while(true){
showMenu();
System.out.println("请录入选项");
int option =sc.nextInt();
switch (option){
case 1:
case1();
break;
case 2:
case2();
break;
case 3:
case3();
break;
case 4:
case4();
break;
case 5:
case5();
break;
case 6:
case6();
break;
case 7: break;
default:
System.out.println("请正确输入选项");
}
}
}
private static void case1(){
List<Emp> emps = empDao.findAll();
emps.forEach(System.out::println);
}
private static void case2(){
List<Dept> depts = deptDao.findAll();
depts.forEach(System.out::println);
}
private static void case3(){
System.out.println("请输入要删除的员工编号");
int empno=sc.nextInt();
empDao.deleteByEmpno(empno);
}
private static void case4(){
System.out.println("请输入员工编号");
int empno =sc.nextInt();
System.out.println("请输入员工姓名");
String ename =sc.next();
System.out.println("请输入员工职位");
String job =sc.next();
System.out.println("请输入员工上级");
int mgr =sc.nextInt();
System.out.println("请输入员工入职日期,格式为yyyy-MM-dd");
Date hiredate =null;
try {
hiredate = simpleDateFormat.parse(sc.next());
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("请输入员工工资");
double sal =sc.nextDouble();
System.out.println("请输入员工补助");
double comm=sc.nextDouble();
System.out.println("请输入员工部门号");
int deptno =sc.nextInt();
Emp emp=new Emp(empno, ename, job, mgr, hiredate, sal, comm,deptno);
empDao.updateEmp(emp);
}
private static void case5(){
System.out.println("请输入员工姓名");
String ename =sc.next();
System.out.println("请输入员工职位");
String job =sc.next();
System.out.println("请输入员工上级");
int mgr =sc.nextInt();
System.out.println("请输入员工入职日期,格式为yyyy-MM-dd");
Date hiredate =null;
try {
hiredate = simpleDateFormat.parse(sc.next());
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("请输入员工工资");
double sal =sc.nextDouble();
System.out.println("请输入员工补助");
double comm=sc.nextDouble();
System.out.println("请输入员工部门号");
int deptno =sc.nextInt();
Emp emp=new Emp(null, ename, job, mgr, hiredate, sal, comm,deptno);
empDao.addEmp(emp);
}
private static void case6(){
System.out.println("请录入部门号");
int deptno =sc.nextInt();
System.out.println("请录入部门名称");
String dname =sc.next();
System.out.println("请录入部门位置");
String loc =sc.next();
Dept dept =new Dept(deptno,dname,loc);
deptDao.addDept(dept);
}
public static void showMenu(){
System.out.println("************************************");
System.out.println("* 1 查看所有员工信息");
System.out.println("* 2 查看所有部门信息");
System.out.println("* 3 根据工号删除员工信息");
System.out.println("* 4 根据工号修改员工信息");
System.out.println("* 5 增加员工信息");
System.out.println("* 6 增加部门信息");
System.out.println("* 7 退出");
System.out.println("************************************");
}
}
相关文章
- Java多线程详解_java支持多线程
- Java设置全局变量_java如何定义全局变量
- java工具类-Java对象转换成Map
- java 图片识别 tess4j_JAVA使用Tess4J进行ocr识别
- think in java一_Think in Java(一):Java基础「建议收藏」
- java switch用法_Java switch语句
- java启动器_JAVA基础:Java 启动器如何查找类
- java的运行环境是什么_Java运行环境是什么
- java标识符是什么_Java 标识符「建议收藏」
- java环境_Java基础篇——环境配置
- java public interface_Java 接口interface的基础[通俗易懂]
- JAVA 实现简单的学生成绩管理系统
- java基本数据类型 think in java_Think in Java(一):Java基础[通俗易懂]
- JAVA学习笔记之SVN代码回滚
- java根据Stack栈实现公式解析和自定义函数(二)
- JAVA遍历数组的三种方法_java遍历object数组
- 基于java的小区物业管理系统_java做一个管理系统
- JAVA基于Swing和Netty,仿QQ界面聊天小项目
- JAVA实现精确的加减乘除代码详解编程语言
- Java之创建对象>3.Enforce the singleton property with a private constructor or an enum type详解编程语言
- Java List.removeAll()方法:从列表中移除所有元素
- 环境的基础Linux:Java环境的支撑者(linux是java)
- 设置Redis中Java实现设置过期前的实现(redisjava过期)
- 缓存实现Redis Java:实现过期缓存(redisjava过期)
- 让Java开发能力在Linux下得到更大发挥(java linux编程)
- Linux Java时区调整:让处理日期更加方便(linux java时区)
- JAVA/JSP学习系列之四
- java单例模式学习示例
- Java基础之java处理ip的工具类