欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)學(xué)籍管理系統(tǒng)

 更新時間:2016年12月28日 14:09:17   作者:A_stone_  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)籍管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下

本教程為大家分享了學(xué)籍管理系統(tǒng)的具體java代碼,供大家參考,具體內(nèi)容如下

1.需求分析

1.1系統(tǒng)功能設(shè)計(jì)

(1)能夠查詢學(xué)生的基本信息,如:學(xué)號,姓名年齡,班級和性別
(2)能對表格中的學(xué)生信息實(shí)現(xiàn)增加,刪除,查找,修改等功能
(3)能將數(shù)據(jù)保存到MySQL數(shù)據(jù)庫中,記錄下來
(4)能把數(shù)據(jù)通過mysql數(shù)據(jù)庫進(jìn)行數(shù)據(jù)更新

1.2系統(tǒng)模塊設(shè)計(jì)

學(xué)籍管理系統(tǒng)包括增加信息模塊,刪除信息模塊,修改信息模塊,查詢信息模塊,更新數(shù)據(jù)模塊。系統(tǒng)管理人員能夠查詢學(xué)生的學(xué)號,姓名,性別,年齡,所獲獎項(xiàng)等信息。
(具體的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)E-R圖請翻閱附錄2)

2.系統(tǒng)實(shí)現(xiàn)

本系統(tǒng)使用Java/JDBC語言編程的方法實(shí)現(xiàn)學(xué)籍管理。
用Java實(shí)現(xiàn)mysql數(shù)據(jù)庫,該技術(shù)主要是使用了導(dǎo)入JDBC.jar,使得Java程序員能夠自由調(diào)用標(biāo)準(zhǔn)數(shù)據(jù)庫訪問類和接口。
JDBC和Java結(jié)合使用,使用戶可以容易的使用sql語句實(shí)現(xiàn)數(shù)據(jù)庫的大部分操作,而Java的容易移植,適合于多種操作系統(tǒng)的特點(diǎn)配合JDBC使用,可以滿足用戶需求。

2.1主要布局文件

根據(jù)“一事一地原則”,進(jìn)行該程序的布局,書寫了相關(guān)文檔供用戶閱讀,mysql中的數(shù)據(jù)也可以導(dǎo)出到“studinfo.txt”文件中,便于用戶打印或者查閱。采用的JDBC為5.0.8版本。 2.2關(guān)鍵接口段代碼及其注解

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");

  // 建立與數(shù)據(jù)庫的Connection連接
  // 數(shù)據(jù)庫所處于的ip:127.0.0.1 (本機(jī))
  // 數(shù)據(jù)庫的端口號: 3306 (mysql專用端口號)
  // 數(shù)據(jù)庫名稱 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接口

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);
}

//詳細(xì)sql語句和代碼實(shí)現(xiàn)請查后頁附錄備注!

2.3 設(shè)計(jì)方法

采用單例化的設(shè)計(jì)模式,在分別設(shè)計(jì)增刪查改功能時,分別獨(dú)立的調(diào)用數(shù)據(jù)庫,以免后期維護(hù)軟件麻煩,本軟件將連接數(shù)據(jù)庫功能獨(dú)立的拿出來作為一個類,在后期使用的時候只需要調(diào)用即可,無需反復(fù)實(shí)現(xiàn)大段的數(shù)據(jù)庫連接代碼,減少代碼冗余,利于后期系統(tǒng)的進(jìn)一步完善,以及便于其他程序員閱讀。

(下面為了老師閱讀方便,只做sql-conncet連接的單例展示?。?/p>

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界面展示
在界面下方通過按鈕實(shí)現(xiàn)增刪修改和導(dǎo)入功能,在下方的填選框中可鍵入學(xué)生id實(shí)現(xiàn)查詢功能(這里假設(shè)id為該系統(tǒng)唯一的主鍵,觸發(fā)回車即可)

3.系統(tǒng)缺陷

該系統(tǒng)存在很多bug,例如在導(dǎo)入導(dǎo)出數(shù)據(jù)的時候,新數(shù)據(jù)和舊數(shù)據(jù)之間的空行無法消除,新的學(xué)號插入時和舊學(xué)號可能會引起沖突,導(dǎo)致軟件自動關(guān)閉,總體來說還有很多進(jìn)步的地方,望進(jìn)一步修復(fù)。
其次就是,本次設(shè)計(jì)的軟件的實(shí)體只有一個學(xué)生,較為單一,所以實(shí)現(xiàn)起來不是太麻煩,只是沒有很多的余地將上課學(xué)的E-R圖等設(shè)計(jì)的實(shí)現(xiàn)加入考察,希望寒假可以實(shí)現(xiàn)學(xué)生,課程,以及老師三表之間的查詢,將這個系統(tǒng)進(jìn)一步完善。

4.文件系統(tǒng)實(shí)現(xiàn)和數(shù)據(jù)庫實(shí)現(xiàn)的優(yōu)劣

文件系統(tǒng)面向某一應(yīng)用程序,共享性差,冗余度大,數(shù)據(jù)獨(dú)立性差,記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu),由應(yīng)用程序自己控制。

數(shù)據(jù)庫系統(tǒng)面向現(xiàn)實(shí)世界,共享性高,冗余度小,具有較高的物理獨(dú)立性和一定的邏輯獨(dú)性,整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述,由數(shù)據(jù)庫管理系統(tǒng)提供數(shù)據(jù)的安全性、完整性、并發(fā)控制和恢復(fù)能力。提高了數(shù)據(jù)的共享性;降低了數(shù)據(jù)的冗余度,提高了數(shù)據(jù)的一致性;采用一定的數(shù)據(jù)模型實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)化;數(shù)據(jù)由DBMS統(tǒng)一管理和控制,且更利于非計(jì)算機(jī)人士的操作和使用,降低了學(xué)習(xí)成本。并且隨著數(shù)據(jù)庫技術(shù)的發(fā)展和當(dāng)今軟件配合使用,使得用戶都意識不到自己的軟件在使用數(shù)據(jù)庫功能。

附錄1:代碼片段中的sql語句實(shí)現(xiàn)增刪查改
(功能的實(shí)現(xiàn)較為相同,這里展示第一個update,add,delete功能就不重復(fù)展示繁瑣的代碼了,只列出關(guān)鍵代碼以供查閱)

1.更新的實(shí)現(xiàn)

// update 實(shí)現(xiàn)代碼片段

public update(Student stu) { 
 boolean result = false; 
 if (stu == null) { 
  return result; 
 } 
 try { 
  // check 
  if (queryBySno(stu.getSno()) == 0) { 
  return result; 
  } 
  // 實(shí)現(xiàn)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實(shí)現(xiàn)代碼(格式和類的建立都與1相同,更改sql語句即可)

String sql = "delete from student where id=?”; 
String[] param = { stu.getId()}; 

3.add實(shí)現(xiàn)代碼

String sql = "insert into student(id,name,class,sex) values(?,?,?,?)"; 
String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex()};  

4.查詢實(shí)現(xiàn)(根據(jù)id查詢)

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; 
 } 

} 

更多學(xué)習(xí)資料請關(guān)注專題《管理系統(tǒng)開發(fā)》。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot如何讀取配置文件參數(shù)并全局使用

    SpringBoot如何讀取配置文件參數(shù)并全局使用

    這篇文章主要介紹了SpringBoot如何讀取配置文件參數(shù)并全局使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-12-12
  • 基于springboot+jwt實(shí)現(xiàn)刷新token過程解析

    基于springboot+jwt實(shí)現(xiàn)刷新token過程解析

    這篇文章主要介紹了基于springboot+jwt實(shí)現(xiàn)刷新token過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • 詳解WebSocket+spring示例demo(已使用sockJs庫)

    詳解WebSocket+spring示例demo(已使用sockJs庫)

    本篇文章主要介紹了WebSocket spring示例demo(已使用sockJs庫),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Java遍歷文件夾及子目錄代碼實(shí)例

    Java遍歷文件夾及子目錄代碼實(shí)例

    這篇文章主要介紹了Java遍歷文件夾及子目錄代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • springboot數(shù)據(jù)庫操作圖文教程

    springboot數(shù)據(jù)庫操作圖文教程

    本文以圖文并茂的形式給大家介紹了springboot數(shù)據(jù)庫操作,感興趣的朋友一起看看吧
    2017-07-07
  • Java之MyBatis的Dao方式以及Dao動態(tài)代理詳解

    Java之MyBatis的Dao方式以及Dao動態(tài)代理詳解

    這篇文章主要介紹了Java之MyBatis的Dao方式以及Dao動態(tài)代理詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

    springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn)

    這篇文章主要介紹了springboot項(xiàng)目配置logback日志系統(tǒng)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Keycloak各種配置及API的使用說明

    Keycloak各種配置及API的使用說明

    這篇文章主要介紹了Keycloak各種配置及API的使用說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • jasypt對配置文件的數(shù)據(jù)加密與解密方式

    jasypt對配置文件的數(shù)據(jù)加密與解密方式

    這篇文章主要介紹了jasypt對配置文件的數(shù)據(jù)加密與解密方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • java數(shù)組及arrays類對數(shù)組的操作實(shí)例

    java數(shù)組及arrays類對數(shù)組的操作實(shí)例

    下面小編就為大家?guī)硪黄猨ava數(shù)組及arrays類對數(shù)組的操作實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論