本教程為大家分享了學籍管理系統的具體java代碼,供大家參考,具體內容如下
1.需求分析
1.1系統功能設計
(1)能夠查詢學生的基本信息,如:學號,姓名年齡,班級和性別
(2)能對表格中的學生信息實現增加,刪除,查找,修改等功能
(3)能將數據保存到MySQL數據庫中,記錄下來
(4)能把數據通過mysql數據庫進行數據更新
1.2系統模塊設計
學籍管理系統包括增加信息模塊,刪除信息模塊,修改信息模塊,查詢信息模塊,更新數據模塊。系統管理人員能夠查詢學生的學號,姓名,性別,年齡,所獲獎項等信息。
(具體的系統結構設計E-R圖請翻閱附錄2)
2.系統實現
本系統使用Java/JDBC語言編程的方法實現學籍管理。
用Java實現mysql數據庫,該技術主要是使用了導入JDBC.jar,使得Java程序員能夠自由調用標準數據庫訪問類和接口。
JDBC和Java結合使用,使用戶可以容易的使用sql語句實現數據庫的大部分操作,而Java的容易移植,適合于多種操作系統的特點配合JDBC使用,可以滿足用戶需求。
2.1主要布局文件
根據“一事一地原則”,進行該程序的布局,書寫了相關文檔供用戶閱讀,mysql中的數據也可以導出到“studinfo.txt”文件中,便于用戶打印或者查閱。采用的JDBC為5.0.8版本。 2.2關鍵接口段代碼及其注解
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class TestJDBC { public static void main(String[] args) { try { Class.forName( "com.mysql.jdbc.Driver" ); // 建立與數據庫的Connection連接 // 數據庫所處于的ip:127.0.0.1 (本機) // 數據庫的端口號: 3306 (mysql專用端口號) // 數據庫名稱 studinfo // 編碼方式 UTF-8 // 賬號 root // 密碼 admin Connection c = DriverManager .getConnection( "jdbc:mysql://127.0.0.1:3306/studinfo?characterEncoding=UTF-8" , "root" , "admin" ); System.out.println( "連接成功,獲取連接對象: " + c); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } } |
2.2 DAO接口
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package jdbc; import java.util.List; import charactor.student; public interface DAO{ //增加 public void add(student stud); //修改 public void update(student stud); //刪除 public void delete( int id); //獲取 public Hero get( int id); //查詢 public List<student> list(); //分頁查詢 public List<student> list( int start, int count); } |
//詳細sql語句和代碼實現請查后頁附錄備注!
2.3 設計方法
采用單例化的設計模式,在分別設計增刪查改功能時,分別獨立的調用數據庫,以免后期維護軟件麻煩,本軟件將連接數據庫功能獨立的拿出來作為一個類,在后期使用的時候只需要調用即可,無需反復實現大段的數據庫連接代碼,減少代碼冗余,利于后期系統的進一步完善,以及便于其他程序員閱讀。
(下面為了老師閱讀方便,只做sql-conncet連接的單例展示?。?/p>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
package util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DBUtil { static String ip = "127.0.0.1" ; static int port = 3306 ; static String database = "student" ; static String encoding = "UTF-8" ; static String loginName = "root" ; static String password = "admin" ; static { try { Class.forName( "com.mysql.jdbc.Driver" ); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { String url = String.format( "jdbc:mysql://%s:%d/%s?characterEncoding=%s" , ip, port, database, encoding); return DriverManager.getConnection(url, loginName, password); } } |
2.4界面展示
在界面下方通過按鈕實現增刪修改和導入功能,在下方的填選框中可鍵入學生id實現查詢功能(這里假設id為該系統唯一的主鍵,觸發回車即可)
3.系統缺陷
該系統存在很多bug,例如在導入導出數據的時候,新數據和舊數據之間的空行無法消除,新的學號插入時和舊學號可能會引起沖突,導致軟件自動關閉,總體來說還有很多進步的地方,望進一步修復。
其次就是,本次設計的軟件的實體只有一個學生,較為單一,所以實現起來不是太麻煩,只是沒有很多的余地將上課學的E-R圖等設計的實現加入考察,希望寒假可以實現學生,課程,以及老師三表之間的查詢,將這個系統進一步完善。
4.文件系統實現和數據庫實現的優劣
文件系統面向某一應用程序,共享性差,冗余度大,數據獨立性差,記錄內有結構,整體無結構,由應用程序自己控制。
數據庫系統面向現實世界,共享性高,冗余度小,具有較高的物理獨立性和一定的邏輯獨性,整體結構化,用數據模型描述,由數據庫管理系統提供數據的安全性、完整性、并發控制和恢復能力。提高了數據的共享性;降低了數據的冗余度,提高了數據的一致性;采用一定的數據模型實現數據結構化;數據由DBMS統一管理和控制,且更利于非計算機人士的操作和使用,降低了學習成本。并且隨著數據庫技術的發展和當今軟件配合使用,使得用戶都意識不到自己的軟件在使用數據庫功能。
附錄1:代碼片段中的sql語句實現增刪查改
(功能的實現較為相同,這里展示第一個update,add,delete功能就不重復展示繁瑣的代碼了,只列出關鍵代碼以供查閱)
1.更新的實現
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
// update 實現代碼片段 public update(Student stu) { boolean result = false ; if (stu == null ) { return result; } try { // check if (queryBySno(stu.getSno()) == 0 ) { return result; } // 實現update String sql = "update student set id=?,name=?,class=?,sex=?" ; String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex() }; int rowCount = db.executeUpdate(sql, param); if (rowCount == 1 ) { result = true ; } } catch (SQLException se) { se.printStackTrace(); } finally { destroy(); } return result; } |
2.delete實現代碼(格式和類的建立都與1相同,更改sql語句即可)
1
2
|
String sql = "delete from student where id=?”; String[] param = { stu.getId()}; |
3.add實現代碼
1
2
|
String sql = "insert into student(id,name,class,sex) values(?,?,?,?)" ; String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex()}; |
4.查詢實現(根據id查詢)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
private int queryById(String id) throws SQLException { int result = 0 ; if ( "" .equals(id) || id == null ) { return result; } String checkSql = "select * from student where id=?" ; String[] checkParam = { id }; rs = db.executeQuery(checkSql, checkParam); if (rs.next()) { result = 1 ; } return result; } } |
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。