一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java實現學籍管理系統

java實現學籍管理系統

2020-07-20 12:57A_stone_ Java教程

這篇文章主要為大家詳細介紹了java實現學籍管理系統,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本教程為大家分享了學籍管理系統的具體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;
 }
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 嫩模被黑人粗大挺进 | 国产51页| 日本韩国推理片免费观看网站 | 免费精品视频在线 | 亚洲国内精品 | 精品亚洲视频在线观看 | 情欲满载2012美国dvd | 免费一级毛片完整版在线看 | 女人把私密部位张开让男人桶 | 欧美精品一区二区三区免费 | 久久免费国产 | 护士伦理片 | 华人在线视频 | 亚洲精品色婷婷在线影院麻豆 | 国产美女久久久久 | 轻轻色在线视频中文字幕 | www.羞羞视频 | 九九热这里只有精品视频免费 | 精品国产一区二区三区久久久狼 | 好大好硬好深好爽想要之黄蓉 | 色婷婷激婷婷深爱五月老司机 | 精品91 | 四虎影院免费在线 | 韩国久播影院理论片不卡影院 | 欧美人体高清在线观看ggogo | 日日摸日日碰夜夜爽97纠 | 成人在线一区二区 | 亚洲高清一区二区三区四区 | 激情视频图片小说qvdo | 久久久无码精品无码国产人妻丝瓜 | 亚洲va精品中文字幕 | 天天操天天做 | 欧美成人午夜片一一在线观看 | 国产a一级毛片爽爽影院 | 天莱男模gary | 十大看黄网站 | 国产精品亚洲w码日韩中文 国产精品香蕉在线观看不卡 | 99ri在线精品视频 | 欧美在线一级片 | 精品国产免费久久久久久 | 被教官揉了一晚上的奶小说 |