大一課程設計:基於資料庫的學生資訊系統
我大一上學期的課程設計。
水平比較低。對別人來說或許是些廢話。
不過老師說這些對以後的學習會有用。不知道真的假的。
先稀裡糊塗的寫下來再說吧。。
題目要求:利用資料庫實現學生資訊管理系統,完成學生的各種管理。
(1)新增一個新學生(通過鍵盤或通過檔案向資料庫中新增學生:注意:一次可能要插入多個學生)
(2)從資料庫中刪除學生,注意要刪除學生應滿足的條件
(3)修改學生的資訊,注意要修改學生應滿足的條件
(4)查詢學生並輸出其有關資訊(要輸入查詢條件)
(5)顯示出所有學生的資訊(按表格格式顯示:由表頭,並且一個學生顯示一行)
(6)為了便於檢視,將資料庫中的資料儲存在檔案中。
分析:
(一)首先要建立學生資料庫、資料庫表(要注意:描述學生應該有哪些欄位)
利用access資料庫,建立一個由: 學號,姓名,性別,出生日期,院系,和5門成績,總成績的表。
1. 1建立過程:
(1)資料庫名:students_k (一定要記住:存放位置)
(2) 資料表名: student_b
表結構: 欄位名 資料型別 欄位的含義
xh 文字 學號
xm 文字 姓名
xb 文字 性別
rq 文字 出生日期
yx 文字 院系
cj1 整數 數學成績
cj2 整數 語文成績
cj3 整數 物理成績
cj4 整數 化學成績
cj5 整數 英語成績
cj6 整數 總成績
(3)在資料庫的資料表中,輸入學生記錄(一個學生是一個記錄,要多輸入幾個)
(4)儲存資料表。
1.2 建立資料來源:
(1) 開始選單à設定à控制皮膚à管理工具à資料來源(ODBC)
(2)(選擇系統DSN)新增à選擇Access Driver(*.mdb)à完成
(3)在”資料來源名(N)”:輸入名字:XXX
可以根據自己的便於記憶的輸入,必須記住以後要使用這個名字,
最好與資料庫名student_k一樣
(4)單擊”選擇”,選擇已建立要使用的資料庫(students_k)
(5)單擊”確定”------完成.
(二)啟動JAVA語開發環境,設計應用程式
2.1 學生類(student)的建立:
該類的建立過程和思想請參考“基於檔案的管理系統”中的詳細說明。
另外,根據資料庫操作的特點,需要再補充如下方法。
修改記錄方法:(注意:引數的含義與應用)
該方法主要用於,用一個學生物件,去替換資料庫結果集中的當前記錄,實現記錄的修改
//用一個學生物件t,替換ResultSet中的物件rs中的一個記錄
public void student_db(ResultSet rs)throws Exception{
rs.updateString("xh",xh);
rs.updateString("xm",xm);
rs.updateString("xb",xb);
rs.updateString("ri",csrq);
rs.updateString("yx",yx);
for(int i=;i<=6;++i){
rs.updateInt("cj"+i,cj[i-1]);
}
rs.updateRow();
}
2.2 定義一個實現資料庫聯接等功能的類(AccessDb_Bean)
目的是為訪問資料庫提供基本的元件
屬性: Statement stmt; //建立語句物件
Connection con;
(2.2.1)定義連線資料庫的方法,
注意:這個方法,是一個固定的格式,希望同學們記住
public AccessDb_Bean() throws Exception{//
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:students_k");
stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
(2.2.2)設計sql語句執行方法:
注意:不同的sql語句,需要使用不同的執行語句,JAVA語言中提供了3中語句格式,希望同學們記住並理解,這裡給出了兩種格式。
public ResultSet executeselect(String sql )throws Exception{
ResultSet rs=stmt.executeQuery(sql);
return rs;
}
public void executDML(String sql)throws Exception{
stmt.executeUpdate(sql);}
(2.2.3) 關閉方法:
在這裡要關閉兩個物件:con 和stmt
public void close()throws Exception {
con.close();
stmt.close();}
(2.3)資料庫操作類(data_op)的定義:
該類是資料庫操作的主要類,所有的對資料庫的操作方法,應該全部定義在該類中。
注意:該類與“基於檔案管理系統中”學生集合類的區別。
(2.3.1)屬性:
只有一個,描述所連線的資料庫類的一個物件mydata;
AccessDb_Bean mydata;
(2.3.2)構造方法:
通過呼叫構造方法,實現資料庫的連線和建立語句物件,形成可以直接使用的資料庫物件
public data_op() throws Exception{
mydata=new AccessDb_Bean();
}
(2.3.3)關閉方法:
呼叫物件mydata,關閉資料庫的連線和建立語句
public void close() throws Exception{
mydata.close();
}
(2.3.4)在螢幕上顯示學生的方法
從sql串中,執行查詢,獲取資訊, 通過呼叫student類的構造方法,形成一個學生物件,再使用student類的顯示方法
public void show(String sql) throws Exception{
ResultSet rs=mydata.executeselect(sql);
student s;
student.show_biaotou();
while(rs.next()){
s=new student(rs);
s.show();
}
}
(2.3.5)插入學生記錄方法:
從鍵盤中輸入學生資訊,可以重複輸入,直到不再輸入為止。
public void insert()throws Exception{
Scanner f=new Scanner(System.in);
System.out.println("從鍵盤中輸入資料,現在開始輸入:");
while(true){
System.out.println("輸入:學號,姓名,性別、出生日期,院系,5門成績(整數):");
String xh=f.next();
String xm=f.next();
String xb=f.next();
String csrq=f.next();
String yx=f.next();
int cj0=f.nextInt();
int cj1=f.nextInt();
int cj2=f.nextInt();
int cj3=f.nextInt();
int cj4=f.nextInt();
int cj5=cj0+cj1+cj2+cj3+cj4;
String ss1="('"+xh+"','"+xm+"','"+xb+"','"+csrq+"','"+yx+"',";
String ss2=""+cj0+","+cj1+","+cj2+","+cj3+","+cj4+","+cj5+")";
String sql="insert into students_b values"+ss1+ss2;
mydata.executDML(sql);
System.out.println("繼續下一個學生嗎?(0-否/1-是)");
if(f.nextInt()==0) break;
}
}
(2.3.6)//將檔案f中的學生資訊匯入資料庫中,引數f是要讀的檔名(包含路徑)
public void insert(String f) throws Exception{
File ff=new File(f);
Scanner sc=new Scanner(ff);
while(sc.hasNext()){
String xh=sc.next();
String xm=sc.next();
String xb=sc.next();
String csrq=sc.next();
String yx=sc.next();
int cj0=sc.nextInt();
int cj1=sc.nextInt();
int cj2=sc.nextInt();
int cj3=sc.nextInt();
int cj4=sc.nextInt();
int cj5=cj0+cj1+cj2+cj3+cj4;
String ss1="('"+xh+"','"+xm+"','"+xb+"','"+csrq+"','"+yx+"',";
String ss2=""+cj0+","+cj1+","+cj2+","+cj3+","+cj4+","+cj5+")";
String sql="insert into students_b values"+ss1+ss2;
mydata.executDML(sql);
}
System.out.println("由檔案中,將資料匯入資料庫完成!!!!");
}
(2.3.7)刪除學生記錄的方法:
/引數t是要刪除記錄的條件,在呼叫時,傳遞實際條件,但要注意輸入條件串的格式
public void delete(String t) throws Exception{
String sql1="delete from students_b ";
String sql=sql1+t;
mydata.executDML(sql);
}
(2.3.8)修改學生記錄方法:
引數t是要修改記錄的條件,在呼叫時,傳遞實際條件,但要注意輸入條件串的格式,
public void update(String t) throws Exception{
Scanner f=new Scanner(System.in);
String sql1="select * from students_b ";
String sql=sql1+t;
ResultSet rs=mydata.executeselect(sql);
student s;
while(rs.next()){
student.show_biaotou();
s=new student(rs);
s.show();
System.out.println("輸入新資訊:姓名,性別、出生日期,院系,5門成績(整數):");
student t1=new student(f);
t1.student_db(rs);
}
}
(2.3.9)將資料庫中的資訊,寫入檔案f中的方法;
首先,將資料庫中的資料讀出(一次讀一條記錄),形成學生物件,再呼叫student類的方法,寫檔案。
public void writer(String f) throws Exception{
PrintWriter pw=new PrintWriter(f);
ResultSet rs=mydata.executeselect("select * from students_b");
student s;
student.show_biaotou(pw);
while(rs.next()){
s=new student(rs);
s.show(pw);
}
pw.close();
}
2.4 主類的定義:
其基本思想與“基於檔案管理系統”的主類一樣,可參考“基於檔案管理系統”中對主類的分析。
public class main_main {
public static void caidan(){
System.out.println("/r/n/r/n");
System.out.println(" 學生資訊管理系統選單");
System.out.println("---------------------------------------");
System.out.println(" 1 從檔案(st.txt)中學生資訊匯入到資料庫中");
System.out.println(" 2 從鍵盤輸入學生資訊,插入到資料庫中");
System.out.println(" 3 按提示輸入要刪除學生記錄的條件,刪除學生記錄");
System.out.println(" 4 按提示輸入要查詢學生記錄的條件,顯示學生資訊");
System.out.println(" 5 按提示輸入要修改學生的條件,完成學生資訊的變更");
System.out.println(" 6 將資料庫中學生資訊寫入一個新檔案(new_st.txt)中");
System.out.println(" 7 在螢幕上顯示資料庫中的所有學生資訊");
System.out.println(" 8 退出系統");
System.out.println("---------------------------------------");
System.out.print("請選擇功能號1-8(一定要先執行1):");
}
public static void main(String[] args)throws Exception {
data_op dd;
Scanner sc=new Scanner(System.in);
int d;
dd=new data_op();
String sql;
String tt;
boolean t=true;
while(t){
caidan();
d=sc.nextInt();
switch(d){
case 1:
dd.insert("st.txt");
break;
case 2:
dd.insert();
break;
case 3:
Scanner sc3=new Scanner(System.in);
System.out.println("請輸入刪除條件,要注意條件的格式:");
tt=sc3.nextLine(); //在這裡要使用,讀一行的方法?
if(!tt.equals("")){
tt=" where "+tt;
}
sql="select * from students_b "+tt;
System.out.println("要刪除的記錄如下:");
dd.show(sql);
System.out.println("真的要刪除嗎?(0-否/1-是)");
if (sc3.nextInt()==1)
dd.delete(tt);
break;
case 4:
Scanner sc4=new Scanner(System.in);
System.out.println("請輸入查詢條件,要注意條件的格式:");
tt=sc4.nextLine(); //在這裡要使用,讀一行的方法?
if(!tt.equals("")){
tt=" where "+tt;
}
sql="select * from students_b "+tt;
dd.show(sql);
break;
case 5:
Scanner sc5=new Scanner(System.in);
System.out.println("請輸入要修改學生的條件,要注意條件的格式:");
tt=sc5.nextLine(); //在這裡要使用,讀一行的方法?
if(!tt.equals("")){
tt=" where "+tt;
}
dd.update(tt);
break;
case 6:
dd.writer("new_st.txt");
break;
case 7:
sql="select * from students_b";
dd.show(sql);
break;
case 8:
t=false;
break;
}
}
dd.close();
System.out.println("執行結束!");
}
}
又是本年沒學java了。都有點看不懂了、(*^__^*) 。
相關文章
- 資料庫課程設計—超市零售資訊管理系統(Python實現)資料庫Python
- 基於php學生資訊管理系統PHP
- Java之學生資訊管理系統升級版(資料庫程式設計)Java資料庫程式設計
- 基於java的大學生健康資訊管理系統的設計與實現Java
- 基於jsp學生資訊管理系統的設計與實現(含原始檔)JS
- 《資料庫系統原理》課程筆記資料庫筆記
- 資料庫:系統設計的核心資料庫
- 基於JSP技術的學生網上選課系統的設計與實現JS
- 資料庫系統設計概述資料庫
- 實驗課程名稱:資料庫系統概論資料庫
- 資料結構 課程設計 員工管理系統(C語言)資料結構C語言
- MySQL練習——教學系統資料庫設計MySql資料庫
- 730【畢設課設】基於STM32的RFID停車場車位車庫管理監測系統設計(全套資料)
- 資料庫系統設計:分割槽資料庫
- 基於Hive進行數倉建設的資源後設資料資訊統計:Spark篇HiveSpark
- 基於Hive進行數倉建設的資源後設資料資訊統計:Hive篇Hive
- 【資料庫設計】資料庫的設計資料庫
- 基於CentOS系統安裝OceanBase資料庫CentOS資料庫
- 資料庫學習 哈工大課程 第Ⅸ、Ⅹ講資料庫
- 學生成績管理系統——課程設計報告
- 585【畢設課設】基於微控制器計程車計價器模擬系統設計
- 庫存系統:倉庫層、排程層、銷售層的庫存資料模型設計模型
- 基於ThinkPHP框架開發的響應式學生資訊後臺管理系統PHP框架
- 部落格系統 - 資料庫設計(三)資料庫
- C# 簡單的學生資訊管理系統,好看的UI介面,與資料庫互動C#UI資料庫
- 資料庫設計基礎資料庫
- 6 收集資料庫統計資訊資料庫
- 基於AI演算法的資料庫異常監測系統的設計與實現AI演算法資料庫
- 學生資訊管理系統用例
- 學生選題資訊管理系統
- mysql重點題目--查詢“01“課程比“02“課程成績高的學生的資訊及課程分數MySql
- 從Exchager資料交換到基於trade-off的系統設計
- 基於Python的滲透測試資訊收集系統的設計和實現Python
- 【系統設計】分散式鍵值資料庫分散式資料庫
- Python學生資訊管理系統-簡易版(Python基礎)Python
- 圖資料庫 Nebula Graph 的資料模型和系統架構設計資料庫模型架構
- (畢業設計資料)基於STM32智慧窗簾控制系統設計
- 基於Java+SpringBoot+Mysql線上課程學習教育系統功能設計與實現三JavaSpring BootMySql
- 基於Java+SpringBoot+Mysql線上課程學習教育系統功能設計與實現四JavaSpring BootMySql