大一課程設計:基於資料庫的學生資訊系統
我大一上學期的課程設計。
水平比較低。對別人來說或許是些廢話。
不過老師說這些對以後的學習會有用。不知道真的假的。
先稀裡糊塗的寫下來再說吧。。
題目要求:利用資料庫實現學生資訊管理系統,完成學生的各種管理。
(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了。都有點看不懂了、(*^__^*) 。
相關文章
- 資料庫課程設計資料庫
- 資料庫課程設計-宿舍管理系統資料庫
- 【C語言課程設計】學生學籍管理系統C語言
- 資料結構課程設計——學生資訊管理系統資料結構
- 基於UML的資訊系統分析與設計 (轉)
- 基於JSP技術的學生網上選課系統的設計與實現JS
- 資料結構課程設計-宿舍管理系統資料結構
- 學生資訊管理系統課程設計
- CSDN學霸課表——軟體設計師、資訊系統監理師、資料庫系統工程師、系統分析師資料庫工程師
- 《資料庫系統原理》課程筆記資料庫筆記
- 資料庫學習 哈工大課程 第Ⅸ、Ⅹ講資料庫
- 資料庫課程設計—超市零售資訊管理系統(Python實現)資料庫Python
- 探討基於資訊系統的專案型生產管理
- 學生成績管理系統——課程設計報告
- C++課程設計:學生資訊管理系統C++
- 【資料庫課程】研討02資料庫
- 資料庫設計基礎資料庫
- 【資料庫設計】資料庫的設計資料庫
- 資料結構 課程設計 員工管理系統(C語言)資料結構C語言
- 730【畢設課設】基於STM32的RFID停車場車位車庫管理監測系統設計(全套資料)
- 實驗課程名稱:資料庫系統概論資料庫
- 資料庫設計:儲存過程資料庫儲存過程
- 關於資料庫系統的學習資料庫
- 基於物件導向(OO)的資料庫設計模式探討物件資料庫設計模式
- 作業系統課程設計感受作業系統
- 資訊系統設計
- 推薦分享一門新手必學的課程《計算機基礎——更適合程式設計師的程式設計必備基礎知識》所有崗位必學課程!計算機程式設計師
- 資料庫課程作業筆記資料庫筆記
- 資料庫課設(校友錄資訊管理系統)資料庫
- 關於學生選課管理系統的用例圖
- 學習python有關統計基礎部分課程總結Python
- 航班資訊查詢和檢索系統-資料結構課程設計資料結構
- 資料庫設計過程遇到的零散點記錄powerdesigner 資料庫設計 表設計資料庫
- 資料庫:系統設計的核心資料庫
- MySQL資料庫基礎學習筆記(整理自蘇勇老師的MySQL基礎課程視訊)MySql資料庫筆記
- 程式設計成為英國小學生的必修課程式設計
- MySQL練習——教學系統資料庫設計MySql資料庫
- (課程)基於Spark的機器學習經驗Spark機器學習