1. 程式人生 > >Java實現員工管理系統(資料庫儲存版)

Java實現員工管理系統(資料庫儲存版)

需求詳見http://blog.csdn.net/hahaha_sxm/article/details/48169711
這次將儲存方式變為資料庫儲存,相較上文,添加了一個DBConnection類,TestEMD.java重寫(程式碼在下方貼出),另外父類Employee中添加了一個返回工資的方法(用於獲取計算後的工資存於資料庫):

public Double getSalary(){
        return salary;
    }

先在SQLServer 2008 R2 中新建資料庫名為:“EmployeeManager”,在該資料庫下新建查詢建一個員工表:Employee,屬性為了方便些,都設為verchar(50)不推薦這麼幹,原諒我︿( ̄︶ ̄)︿,順帶把把幾個操作語句也粘上,好久沒動資料庫了,基本的語句都忘了,憋了半天憋出來的。。原諒我︿( ̄︶ ̄)︿。

create table Employee
(  
id varchar(50) primary key,  
name varchar(50) unique,  
position varchar(50),
holiday varchar(50),
salary varchar(50),)
insert into Employee(id,name,position,holiday,salary) values('1','張三','普通員工','3','6700.0')
insert into Employee(id,name,position,holiday,salary) values('2','李四'
,'普通員工','3','6700.0') delete from Employee where name='李四';
update Employee set id='1',name='李華',position='普通員工',holiday='3',salary='7555.0' where name='張三'

資料庫建完後第一步,專案中匯入SQLDrive的Jar包。右鍵專案-build path-Configure Build path 彈出的對話方塊選擇Libraries選項卡,點選右方的add External jar 然後選擇你的驅動包點選確定就行。

接下來專案中寫資料庫訪問類DBConnection.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection {
    private static Connection conn = null;
    private static final String classname="com.microsoft.sqlserver.jdbc.SQLServerDriver";
    private static final String url="jdbc:sqlserver://localhost:1433;DatabaseName=EmployeeManager;user=sa;password=123";
    public static Connection getConnection(){
        try {
            Class.forName(classname);
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        try {
            conn = DriverManager.getConnection(url);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return conn;
    }
    public static void close(){
        try {
            conn.close();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

接下來就是進入操作類TestEMD.java的編寫了,程式碼如下:

package EmployeeGuanli;

import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

public class TestEMD {
    static Scanner sc = new Scanner(System.in);

    public static void caoZuo() {
        System.out.println("----     工資管理系統                  ----");
        System.out.println("-------------------------------");
        System.out.println("---        1     增加                        ---");
        System.out.println("---        2     刪除                        ---");
        System.out.println("---        3     修改                        ---");
        System.out.println("---        4     查詢                        ---");
        System.out.println("---        0     退出                        ---");
        System.out.println("-------------------------------");
        System.out.println("請輸入你要選擇的操作:");
        String s = sc.next();
        switch (s) {
        case "1":
            try {
                try {
                    addEmployee();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
            break;
        case "2":
            try {
                try {
                    delEmployee();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;
        case "3":
            try {
                try {
                    updateEmployee();
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;
        case "4":
            try {
                queryEmployee();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            break;
        case "0":
            System.out.println("謝謝使用O(∩_∩)O");
            break;
        default:
            System.out.println("指令錯誤請重新輸入!");
            caoZuo();
            break;
        }

    }

    public static void addEmployee() throws IOException, SQLException {
        Connection conn=DBConnection.getConnection();
        String sql="insert into Employee(id,name,position,holiday,salary) values(?,?,?,?,?)";
        PreparedStatement ps=null;
        ps=conn.prepareStatement(sql);
        System.out.println("------增加員工------");
        System.out.println("請輸入相關資訊:");
        System.out.print("ID:");
        String id = sc.next();
        System.out.print("姓名:");
        String name = sc.next();
        System.out.print("職務:");
        String position = sc.next();
        System.out.print("請假天數:");
        int holiday = sc.nextInt();
        System.out.print("基本工資:");
        double salary = sc.nextInt();
        switch (position) {
        case "普通員工":
            Employee a = new CommonEmployee();
            a.ID = id;
            a.name = name;
            a.position = "普通員工";
            a.holiday = holiday;
            a.salary = salary;
            a.sumSalary();
            ps.setString(1,""+id);
            ps.setString(2, name);
            ps.setString(3, position);
            ps.setString(4, ""+holiday);
            ps.setString(5, ""+a.getSalary());
            ps.executeUpdate();
            ps.close();
            conn.close();
            System.out.println("新增成功");
            break;
        case "經理":
            Employee b = new Manager();
            b.ID = id;
            b.name = name;
            b.position = "經理";
            b.holiday = holiday;
            b.salary = salary;
            b.sumSalary();
            ps.setString(1,""+id);
            ps.setString(2, name);
            ps.setString(3, position);
            ps.setString(4, ""+holiday);
            ps.setString(5, ""+b.getSalary());
            ps.executeUpdate();
            ps.close();
            conn.close();
            System.out.println("新增成功!");
            break;
        case "董事長":
            Employee c = new Director();
            c.ID = id;
            c.name = name;
            c.position = "董事長";
            c.holiday = holiday;
            c.salary = salary;
            c.sumSalary();
            ps.setString(1,""+id);
            ps.setString(2, name);
            ps.setString(3, position);
            ps.setString(4, ""+holiday);
            ps.setString(5, ""+c.getSalary());
            ps.executeUpdate();
            ps.close();
            conn.close();
            System.out.println("新增成功!");
            break;
        default:
            System.out.println("不存在此職務,請重新輸入!");
            ps.close();
            conn.close();
            addEmployee();
            break;
        }
        caoZuo();
    }

    public static void delEmployee() throws IOException, SQLException {
        System.out.println("----------刪除員工---------");
        System.out.println("請輸入員工姓名:");
        String n = sc.next();
        Connection conn=DBConnection.getConnection();
        String sql="select * from Employee";
        PreparedStatement ps=conn.prepareStatement(sql);
        ResultSet rs=ps.executeQuery();
        Boolean flag=false;
        while(rs.next()){
            String s=rs.getString("name");
            if(n.equals(s)){
                System.out.println("你要刪除的是:");
                System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t\t"+rs.getString(4)+"\t"+rs.getString(5));
                flag=true;
                System.out.println("你確定要刪除嗎?\n [Y]確定,[N]取消");
            }
        }
        if(!flag){
            System.out.println("你輸入的使用者名稱不存在!請重新輸入!");
            rs.close();
            ps.close();
            conn.close();
            delEmployee();
        }
        String shifou=sc.next();
        if(shifou.equals("y")){
            rs.close();
            ps.close();;
            String sql2="delete from Employee where name=?";
            PreparedStatement ps2=conn.prepareStatement(sql2);
            ps2.setString(1, n);
            Boolean bo=ps2.execute();
            if(!bo){
                System.out.println("刪除成功!");
            }else{
                System.out.println("刪除失敗!");
            }
            ps2.close();
            conn.close();
            caoZuo();
        }else if(shifou.equals("n")){
            System.out.println("已取消刪除!");
            rs.close();
            ps.close();
            conn.close();
            caoZuo();
        }
    }

    public static void updateEmployee() throws IOException, SQLException {
        System.out.println("--------------修改員工資料-------------");
        System.out.println("請輸入你要修改的姓名:");
        String s = sc.next();
        Connection conn=DBConnection.getConnection();
        String sql="select * from Employee";
        PreparedStatement ps=conn.prepareStatement(sql);
        ResultSet rs=ps.executeQuery();
        Boolean flag=false;
        while(rs.next()){
            String nn=rs.getString("name");
            if(nn.equals(s)){
                System.out.println("你要修改的是:");
                System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t\t"+rs.getString(4)+"\t"+rs.getString(5));
                flag=true;
            }
        }
        if(!flag){
            System.out.println("你輸入的使用者名稱不存在!請重新輸入!");
            rs.close();
            ps.close();
            conn.close();
            delEmployee();
        }
        rs.close();
        ps.close();
        String sql2="update Employee set id=?,name=?,position=?,holiday=?,salary=? where name=?";
        PreparedStatement ps2=conn.prepareStatement(sql2);
        System.out.println("請重新輸入相關資訊:");
        System.out.print("ID:");
        String id = sc.next();
        System.out.print("姓名:");
        String name = sc.next();
        System.out.print("職務:");
        String position = sc.next();
        System.out.print("請假天數:");
        int holiday = sc.nextInt();
        System.out.print("基本工資:");
        double salary = sc.nextDouble();
        switch (position) {
        case "普通員工":
                Employee a = new CommonEmployee();
                a.ID = id;
                a.name = name;
                a.position = "普通員工";
                a.holiday = holiday;
                a.salary = salary;
                a.sumSalary();
                ps2.setString(1, id);
                ps2.setString(2, name);
                ps2.setString(3, position);
                ps2.setString(4, ""+holiday);
                ps2.setString(5, ""+a.getSalary());
                ps2.setString(6, s);
                ps2.executeUpdate();
                ps2.close();
                conn.close();
                System.out.println("修改成功!");
                a.display();
                caoZuo();
            break;
        case "經理":
                Employee b = new Manager();
                b.ID = id;
                b.name = name;
                b.position = "經理";
                b.holiday = holiday;
                b.salary = salary;
                b.sumSalary();
                ps2.setString(1, id);
                ps2.setString(2, name);
                ps2.setString(3, position);
                ps2.setString(4, ""+holiday);
                ps2.setString(5, ""+b.getSalary());
                ps2.setString(6, s);
                ps2.executeUpdate();
                ps2.close();
                conn.close();
                System.out.println("修改成功!");
                b.display();
                caoZuo();
            break;
        case "董事長":
                Employee c = new Director();
                c.ID = id;
                c.name = name;
                c.position = "董事長";
                c.holiday = holiday;
                c.salary = salary;
                c.sumSalary();
                ps2.setString(1, id);
                ps2.setString(2, name);
                ps2.setString(3, position);
                ps2.setString(4, ""+holiday);
                ps2.setString(5, ""+c.getSalary());
                ps2.setString(6, s);
                ps2.executeUpdate();
                ps2.close();
                conn.close();
                System.out.println("新增成功!");
                c.display();
                 caoZuo();
            break;
        default:
            System.out.println("不存在此職務,請重新輸入!");
            ps2.close();
            conn.close();
            updateEmployee();
            break;
        }
    }

    public static void queryEmployee() throws SQLException {
        System.out.println("--------------所有員工資訊---------------");
        Connection conn=DBConnection.getConnection();
        String sql="select * from Employee";
        PreparedStatement ps=conn.prepareStatement(sql);
        ResultSet rs=ps.executeQuery();
        while(rs.next()){
            System.out.println(rs.getString(1)+"\t"+rs.getString(2)+"\t"+rs.getString(3)+"\t\t"+rs.getString(4)+"\t"+rs.getString(5));
        }
        rs.close();
        ps.close();
        conn.close();
        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        caoZuo();
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        TestEMD.caoZuo();
    }

}

相關推薦

Java實現員工管理系統資料庫儲存

需求詳見http://blog.csdn.net/hahaha_sxm/article/details/48169711 這次將儲存方式變為資料庫儲存,相較上文,添加了一個DBConnection類,TestEMD.java重寫(程式碼在下方貼出),另外父類

基於JAVA的圖書管理系統jsp+mysql+tomcat

這裡分享一個java web 專案,是一個基於JAVA 的圖書管理系統 本系統使用JSP+MySQL+Tomcat開發完成,由於開發時間過短,功能不甚完善,前臺頁面也不怎麼美觀,但是麻雀雖小,五臟俱全

linux專案 -- 圖書管理系統連結串列

       在ubuntu系統的/home/openwrt/Desktop/IS目錄下,提供了筆者的一些專案,使用者可以直接測試,瞭解linux系統下C程式專案的開發。提供瞭如下的專案:        其中book_manager_json專案是一個“圖書管理系統”的

學生成績管理系統簡易本地

學生成績管理系統(簡易本地版) 一、概述 平臺:Windows 10 ,Microsoft Visual Studio 2017 語言:C++,面向過程 完成日期:2018/12/27 主要功能: 1. 新增學生的資訊(包括學號,姓名,性別,成績) 2. 顯示學生的資訊 3.查詢學生

學生管理系統SSM簡易總結

之前用 Servlet + JSP 實現了一個簡易版的學生管理系統,在學習了 SSM 框架之後,我們來對之前寫過的專案重構一下! 技術準備 為了完成這個專案,需要掌握如下技術: Java 基礎知識 前端: HTML, CSS, JAVAS

資料結構課程設計【學生資訊管理系統煙大

/* * Copyright (c) 2016, 煙臺大學計算機與控制工程學院 * All rights reserved. * 檔名稱:student.project * 作者:李瀟 * 完成日期:2016年12月28日 * 版本號:DEVC+

利用C語言簡單的實現庫存管理系統本地檔案生成形式儲存

問題描述: 庫存管理系統是廠家、商城、商場等的管理商品資訊不可缺少的部分,利用這個系統,可以更好地管理商品的資訊。 本系統的功能: 新增、修改、刪除庫存商品資訊,商品資訊包括:編號、名稱、類別、數量、產地等; 進貨或售出商品後,相應的庫存商品數量應該有所改

[java原始碼] Java Web 文章管理系統Jsp+Ajax+JDBC+MySql實現

本示例是使用JavaWeb技術實現一個簡單的文章管理系統(新聞管理系統)其中主要功能如下: 使用者和管理員登入使用者釋出新文章、文章詳情檢視、文章修改、文章刪除與恢復使用者檢視他人對自己授權的文章及其文章資訊使用者將自己的文章對他人進行授權管理員對普通使用者新發

使用集合ArrayList,HashMap等做對比實現員工管理系統案例

用案例說話,在案例中學習集合。當然這裡並沒有引入泛型。下一次用另外一個來引入泛型。希望小夥伴關注。 這個案例中註釋很清晰,相信大家可以看懂。 package com.test; import java.io.BufferedReader; import java.io.IO

JAVA語言 實現簡單的學生成績管理系統總分+平均分+排名

import java.util.*;public class test14{public static void main(String[] args){Scanner in =new Scanner(System.in);System.out.println("輸入學生人

基於JavaEESSH實現員工管理系統案例

專案開發準備 Java EE開發環境的搭建,請檢視我的另一篇部落格 一個專案的開發一般要做以下幾個事情: 專案概述 專案簡介 使用的開發工具介紹 系統分析 開發背景及意義 可行性研究 經濟可行性 技術可行性

Java swing實現圖書管理系統高階

大家好,今天給大家演示一下由Java swing實現的圖書管理系統,此前給大家演示過一個版本,這個版本作為升級版,比上一個版本功能複雜了不少,這個版本環境還是跟上一個一樣,jdk版本不限,資料庫為mysql,可匯入到eclipse或myeclipse裡執行,下面我們來演示執行

java構建學生管理系統

class 管理系統 同時 進步 傳參 databases 什麽 界面 查看 用java搭建學生管理系統,重要還是對數據庫的操作,諸如增刪改查等。 1.基本的功能: 老師完成對學生信息的查看和修改,完成對班級的信息的概覽。 學生可以看自己的成績和對自己信息的修改。 學生和老

利用nodejs實現商品管理系統

下面實現商品管理系統 第一步:對應的ejs與資料交換的編寫格式。 商品列表介面product.ejs <% for(var i=0;i<list.length;i++){%> <tr>

如何寫一個完整課堂管理系統資料庫增刪改查

  一直在聽建民老師說,javaweb的精髓是Jsp+servlet+javabean。在完成這個系統之前,畢竟沒有學習過javaweb,Jsp和servlet我是知道的,但不會在servlet和jsp之間相互傳值以及應用,javabean是一點沒有聽說過。在這樣的基礎下,沒辦法逃脫測試的情況下,只能硬著頭皮

linux專案 --- 圖書管理系統資料庫

       在 /home/openwrt/Desktop/IS/book_manager_sqlite 目錄下提供了“圖書管理系統”專案,是使用sqlite3資料庫進行資料管理。        在該目錄下,提供了bm_sqlite可執行程式,直接執行如下: ./bm_

java+SQL做學生資訊管理系統增刪改查學生新作

java+SQL做學生資訊管理系統(增刪改查) 過程中需要用到的所有工具資料庫以及資料庫管理器等等 密碼:q80t 大學學習java後做的第一個小專案忍不住分享一下,也是我自己的面向物件程式設計的實踐作業啦,有點水,不是很優。廢話不多數,下面進入正題 介面的編

基於java的圖書管理系統英文

OOD大作業 完全按照軟體工程思路製作文件:需求分析-詳細設計-測試-使用者手冊 僅實現基本功能,詳情介紹可以見文件 由於時間很短,這個工程只是個demo,系統和文件都有需要改進的地方(尤其是測試部分),不過可以提供課程完成思路。

學生管理系統資料庫版本sqlite3版本;淺析資料庫的基礎用法及實際操作

大家好,我是道長王也。如果我不學程式碼, 就要回家繼承千億家產。我不想那樣,我不想讓就金錢腐蝕我的靈魂,我想通過自己的努力去過自己想要的人生。好了閒話不說。 今天我們來淺談資料庫(為什麼說淺談,因為往深了說勞資不會!) 引題 為什麼使用資料庫: 之前的學習中我們

員工管理系統C 語言——伺服器解析

原始碼下載地址:https://download.csdn.net/download/wenfei11471/10477504伺服器功能:1、執行時主介面(伺服器啟動後,只有管理員下線,伺服器不會關閉)