XX學院java實驗報告
{ }
class Communnion extends Thread { {
}
//有客戶請求到來則産生一個Socket對象,并繼續執行 System.out.println(\);
out=new DataOutputStream(sock.getOutputStream()); //由Socket對象得到輸入流,并構造相應的DataOutputStream對象 in=new DataInputStream(sock.getInputStream()); out.writeUTF(\你連接配接伺服器成功\); // 給客戶回報資訊
Communnion th=new Communnion(this); //建立與用戶端互動的線程
//由socket對象得到輸出流,并構造DataInputStream對象
th.start(); // 啟動線程 }catch(Exception e){}
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
out.writeUTF(\); //退出時告訴用戶端 }catch(Exception ee){} dispose(); System.exit(0);
{ try{
} });
public void actionPerformed(ActionEvent e)
String n = t2.getText(); try { }
out.writeUTF(n); t2.setText(\);
// TODO 自動生成 catch 塊 e1.printStackTrace();
} catch (IOException e1) {
}
public static void main(String agrs[]) throws IOException
{ Server mainFrame=new Server(); }
Server fp;
Communnion(Server fp)
this.fp=fp;
45
XX學院java實驗報告
{ {
} try{
fp.out.close(); //關閉socket輸出流 fp.in.close(); //關閉socket輸入流 fp.sock.close(); //關閉socket }catch(Exception ee){break; }
try{
msg = fp.in.readUTF(); if(msg!=null){ }
fp.t1.append(msg+\);
String msg=null; while(true) }
public void run()
fp.serverSock.close(); //關閉ServerSocket }catch(Exception ee){}
} }
三、實驗要求:
1、事先預習,寫出預習報告 2、上機驗證後寫出實驗報告
實驗十六 資料庫設計
一、實驗目的
1.了解JDBC的功能及體系結構;
2.掌握利用JDBC實作資料庫的查詢更新等操作的方法; 3.掌握基本的Java資料庫程式設計。 二、實驗内容
案例 成績查詢系統分析
設計一個小程式可以實作各種單科考試、競賽等成績的各種查詢。将操作與圖形使用者界面相結合,則很容易實作績查詢系統。程式包括三個類,除了主程式及窗體程式外,資料庫連接配接的功能單獨由一個類來完成。程式主界面如圖1所示。當輸入考号後點選按考生查詢按鈕,則顯示該生成績如圖2所示。
46
XX學院java實驗報告
圖1 成績查詢系統界面 圖2 按照考号查詢成
點選“成績名次”按鈕可以檢視考試排名如圖3所示。點選“未通過名單”按鈕可以檢視學生不及格的情況如圖4所示。
圖3 查詢成績名次 圖4 查詢未通過名單
在上面的案例架構中,我們需要利用JDBC連接配接資料庫進行通路。 試嘗試實作此功能,補全代碼。 1.資料庫連接配接類: import java.sql.*;
public class DbConnect //靜态方法提高資料庫的連接配接 { } }
2.窗體程式: import java.awt.*; import javax.swing.*; import java.sql.*;
import java.awt.event.*;
public class ScoreInquirementFrame extends JFrame implements ActionListener {
JPanel contentPane;
47
XX學院java實驗報告
Connection con; Statement st;
JSplitPane jSplitPane1 = new JSplitPane();
BorderLayout borderLayout1 = new BorderLayout(); JPanel jPanel1 = new JPanel();
JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(); JLabel jLabel1 = new JLabel(\考号\
JButton jButton1 = new JButton(\成績名次\ JButton jButton2 = new JButton(\未通過名單\ JTextField jTextField1 = new JTextField();
JButton jButton3 = new JButton(\按考生查詢\ //構造方法
public ScoreInquirementFrame() {
}/進行視窗的初始化
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane(); contentPane.setLayout(borderLayout1); setSize(new Dimension(400, 300)); setTitle(\成績查詢系統\ con=DbConnect.getConn(); st=con.createStatement();
jSplitPane1.setOrientation(JSplitPane.VERTICAL_SPLIT); jPanel1.setLayout(null);
jLabel1.setBounds(new Rectangle(24, 15, 49, 25)); jButton1.setBounds(new Rectangle(79, 58, 181, 29)); jButton1.addActionListener(this);
jButton2.setBounds(new Rectangle(80, 100, 178, 28)); jButton2.addActionListener(this);
jTextField1.setBounds(new Rectangle(79, 15, 180, 25)); jButton3.setBounds(new Rectangle(268, 15, 96, 24)); jButton3.addActionListener(this);
contentPane.add(jSplitPane1, java.awt.BorderLayout.CENTER); jSplitPane1.add(jPanel1, JSplitPane.TOP); jPanel1.add(jButton1); jPanel1.add(jButton2); jPanel1.add(jTextField1); jPanel1.add(jButton3); jPanel1.add(jLabel1);
jSplitPane1.add(jScrollPane1, JSplitPane.BOTTOM);
48