數據庫課程設計 人事管理系統


    一、JAVA與數據庫的合作

此次開發語言為Java,所用的數據庫驅動是mysql-connector-java-5.1.8-bin.jar

 

第一步   用Java連接MySQL數據庫(驅動下載:https://dev.mysql.com/downloads/connector/j/   )

將下載好的mysql-connector-java-5.1.8-bin.jar復制到本機下載的Java的文件夾中 (作者的是 C:\Program Files (x86)\Java\jdk1.7.0_07)

然后在 Eclipse 中,鼠標選中人事管理系統工程,右鍵點擊 Build Path,選擇 Configure Build Path,會 跳 出 一 個 屬 性 框 圖 。選 擇 Java Build Path 下 的 Libraries , 查 看 是 否 有 mysql-connector-java-5.1.8-bin.jar。

如果沒有,點擊Add External JARs,瀏覽到JDBC的MySQL 驅動的 jar 包,點擊確定,將其導入到項目中。

 

第二步  在項目下跑一個測試代碼來檢測數據庫是否鏈接成功

 1 public  class Test() {  2         public static void main(String []args){  3 try {  4             //mysql數據庫設置驅動程序類型
 5             Class.forName("com.mysql.jdbc.Driver");  6             System.out.println("mysql數據庫驅動加載成功");  7             
 8             //sqlserver數據庫設置驅動程序類型  9             //Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 10             //System.out.println("sqlserver數據庫驅動加載成功");
11 
12  } 13         catch(java.lang.ClassNotFoundException e) { 14  e.printStackTrace(); 15  } 16  } 17 }

 

 

第三步:驅動鏈接成功后,就可以在數據庫建立待操作的基本表了

 

人事管理系統主要表為  (員工信息表 和 人事變更表)   

 

對表的基本操作包括  用SQL語句對表中數據進行  查詢和更新(增刪改)

 

首先創建一個Connection對象   然后用SQL語句對數據庫進行操作    具體代碼如下

 
         

package exercise3;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;

 
         


public class DbProcess{


static
Connection connection = null; //鏈接對象 static ResultSet rs=null ; //操作后結果集 //mysql數據庫url static String userMySql="root"; //數據庫用戶名 static String passwordMySql="a123456"; //密碼 static String urlMySql = "jdbc:mysql://localhost:3306/StaffDb?user="+userMySql+"&password="+passwordMySql+"&useUnicode=true&characterEncoding=gbk"; //將數據庫與Java鏈接 public DbProcess() { DbProcess//構造函數 try { //mysql數據庫設置驅動程序類型 Class.forName("com.mysql.jdbc.Driver"); System.out.println("mysql數據庫驅動加載成功"); } catch(java.lang.ClassNotFoundException e) { e.printStackTrace(); } } public static void connect(){ //連接 try{ //mysql數據庫 connection = DriverManager.getConnection(urlMySql); if(connection!=null){ System.out.println("數據庫連接成功"); } } catch(Exception e){ e.printStackTrace(); } } public static void disconnect(){ //斷開連接 try{ if(connection != null){ connection.close(); connection = null; } } catch(Exception e){ e.printStackTrace(); } } public static ResultSet executeQuery(String sql) { //把查詢SQL語句傳送至數據庫並執行 然后返回查詢的結果集 try { System.out.println("executeQuery(). sql = " + sql); PreparedStatement pstm = connection.prepareStatement(sql); //PreparedStatement:用於執行sql語句的對象 //用connection的PreparedStatement(sql)方法獲取 rs = pstm.executeQuery(); // ResultSet rw=rs; //while(rs.next()){ //System.out.println(rs.getString("pNo")); // } } catch(SQLException ex) { ex.printStackTrace(); } return rs; } //插入 //executeUpdate 的返回值是一個整數,指示受影響的行數(即更新計數)。 //executeUpdate用於執行 INSERT、UPDATE 或 DELETE 語句 //以及 SQL DDL(數據定義語言)語句,例如 CREATE TABLE 和 DROP TABLE。 //執行增、刪、改語句的方法 public static int executeUpdate(String sql) { //把更新SQL語句傳送至數據庫執行 int count = 0; connect(); try { Statement stmt = connection.createStatement(); count = stmt.executeUpdate(sql); } catch(SQLException ex) { System.err.println(ex.getMessage()); } disconnect(); return count; } }

 

 

 

例如  查詢所有員工的個人信息

 1         try{
 2             // 建立查詢條件
 3             String sql = "select * from person;";
 4             System.out.println("queryAllProcess(). sql = " + sql);
 5     
 6                 // 將查詢獲得的記錄數據,轉換成適合生成JTable的數據形式
 7             DbProcess.connect();
 8             
 9              DbProcess.executeQuery(sql);   //結果集ResultSet
10         
11         
12             
13             // 將查詢獲得的記錄數據,轉換成適合生成JTable的數據形式
14             staffVector.clear();    //此條為UI部分  可不管
15             while(DbProcess.rs.next()){
16                 Vector v = new Vector();
17                 System.out.println(DbProcess.rs.getString("pName"));      //測試語句:輸出查詢出來的姓名
18                 v.add(DbProcess.rs.getString("pId"));
19                 v.add(DbProcess.rs.getString("pName"));
20                 v.add(DbProcess.rs.getString("pSex"));
21         v.add(MD5.decrypt(DbProcess.rs.getString("pPasswd")));       
22                  //MD5.decrypt()為我的數據庫密碼算法  
23                 v.add(DbProcess.rs.getString("pAuthority"));
24                 v.add(DbProcess.rs.getString("pDepartment"));
25                 v.add(DbProcess.rs.getString("pJob"));
26                 v.add(DbProcess.rs.getString("pEdulevel"));
27                 v.add(DbProcess.rs.getString("pSpcialty"));
28                 v.add(DbProcess.rs.getString("pBirthday"));
29                 v.add(DbProcess.rs.getString("pAddress"));
30                 v.add(DbProcess.rs.getString("pTel"));
31                 v.add(DbProcess.rs.getString("pEmail"));
32                 v.add(DbProcess.rs.getString("pState"));
33                 v.add(DbProcess.rs.getString("pRemark"));
34                 
35                 staffVector.add(v);                //    查詢結果集已轉換為Vector v ,並將v添加到我的GUI中顯示
36             }
37     StaffJTable.updateUI();        //此條更新UI,在本次可以不管
38             DbProcess.disconnect();
39         }catch(SQLException sqle){
40             System.out.println("sqle = " + sqle);
41             JOptionPane.showMessageDialog(null,
42                 "數據操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
43         }catch(Exception e){
44             System.out.println("e = " + e);
45             JOptionPane.showMessageDialog(null,
46                 "數據操作錯誤","錯誤",JOptionPane.ERROR_MESSAGE);
47         }

 

 

 

 

最后提前預覽一波,俺本次課程設計做出最后的作品

 

 用戶模式:

 

 管理員模式:

 

 

 

 

 

關於項目源代碼我上傳到Github 上 可以直接下載 

https://github.com/MrBling/Database

sql文件是我的數據庫文件    數據庫是我當時課設的項目名 我懶得改了  當然建議用英文 不建議用中文

 

注:我數據庫項目 因為當時用的是絕對路徑所以想要用的話 需要把數據庫按照我的路徑來存放

把“數據庫”這個文件夾     放到這個路徑下F:\學習資料\JAVA\calculator

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM