1、JAVA與數據庫的合做java
這次開發語言爲Java,所用的數據庫驅動是mysql-connector-java-5.1.8-bin.jarmysql
第一步 用Java鏈接MySQL數據庫(驅動下載:https://dev.mysql.com/downloads/connector/j/ )git
將下載好的mysql-connector-java-5.1.8-bin.jar複製到本機下載的Java的文件夾中 (做者的是 C:\Program Files (x86)\Java\jdk1.7.0_07)github
而後在 Eclipse 中,鼠標選中人事管理系統工程,右鍵點擊 Build Path,選擇 Configure Build Path,會 跳 出 一 個 屬 性 框 圖 。選 擇 Java Build Path 下 的 Libraries , 查 看 是 否 有 mysql-connector-java-5.1.8-bin.jar。算法
若是沒有,點擊Add External JARs,瀏覽到JDBC的MySQL 驅動的 jar 包,點擊肯定,將其導入到項目中。sql
第二步 在項目下跑一個測試代碼來檢測數據庫是否連接成功數據庫
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 }
第三步:驅動連接成功後,就能夠在數據庫創建待操做的基本表了函數
人事管理系統主要表爲 (員工信息表 和 人事變動表) sqlserver
對錶的基本操做包括 用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