亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? workthread.java

?? 試題庫管理系統 該系統所包含的子系統有:用戶管理子系統、課程管理子系統、習題管理子系統和試卷庫管理子系統。而用戶管理子系統下分的模塊有:添加用戶、刪除用戶和修改用戶信息;課程管理子系統下分的模塊有:創
?? JAVA
字號:
package server.pool;
import java.sql.SQLException;
import java.util.Date;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.sql.Connection;
import java.net.Socket;
import java.io.IOException;
import java.sql.Statement;
import java.sql.ResultSet;
import java.io.InputStreamReader;
import java.io.FileReader;
import java.sql.PreparedStatement;
import java.util.Vector;
import java.io.FileOutputStream;

/**
 * 用來創建工作線程
 * @author not attributable
 * @version 1.0
 */
class WorkThread implements Runnable{
Socket socket=null;
BufferedReader bufin;
PrintWriter prout;
DataBaseConnection DBPool;
Connection conn;
String ID;
private Vector userContainer;
CloseBean closed;
/**
 * 構造函數
 * @param socket Socket
 */
public WorkThread(Socket socket,Vector userContainer,CloseBean closed) {
    this.socket=socket;
    this.closed=closed;
    this.userContainer=userContainer;
try {
    bufin = new BufferedReader(new InputStreamReader(socket.getInputStream()));
    prout = new PrintWriter(socket.getOutputStream());
} catch (IOException ex) {
    System.out.println("讀取流失敗");
}
  DBPool=DataBaseConnection.getInstance();
  conn=DBPool.getConnection();
}
/**
 * 實現Runnable接口,服務器的主要工作線程
 */
public void run(){
    String cmd="";
 while(!closed.isClosed()){       //服務器未關閉
        try {
          cmd=bufin.readLine();    //接收客戶端命令
        } catch (IOException ex) {
          cmd="";
          System.err.println(ex.getMessage());
          break;
        }
        if(cmd.equals("close")){      //關閉連接命令
         System.out.println(cmd);     //測試用
          break;
        }
        else if(cmd.equals("read")){    //讀取習題命令
           System.out.println(cmd);    //測試用
             send();
        }
        else if(cmd.equals("write")){    //修改、添加命令
            System.out.println(cmd);     //測試用
                receive();
            }
        else if(cmd.equals("login")){    //登陸命令
               System.out.println(cmd);    //測試用
               login();
            }
        else if(cmd.equals("load")){    //下載試卷命令
             System.out.println(cmd);    //測試用
                load();
            }
            else if(cmd.equals("transfer")||cmd.equals("savetest")){     //上傳試卷命令
                System.out.println(cmd);     //測試用
                transfer();
            }
            else if(cmd.equals("readCourse")){
                System.out.println(cmd);     //測試用
                sendCourse();
            }
            else System.out.println("The error cmd:"+cmd); 
            try {
                 Thread.sleep(5000);
                 System.out.println("sleep");   //測試用
            } catch (InterruptedException ex2) {
              System.err.println(ex2.getMessage());
            }
  }
    try{
        userContainer.remove(ID);    //從userContainer中移除該用戶ID
        bufin.close();      //關閉輸入流
        prout.close();      //關閉輸出流
        DBPool.freeConnection(conn);   //釋放數據庫連接
        socket.close();     //關閉socket連接
  }catch(IOException ex){
      System.err.println(ex.getMessage());
    }
}
/**
 * 響應客戶端的讀取習題命令
 */
public void send(){
    String sql=null;
    ResultSet rt1;
    try {
        sql = bufin.readLine();       //接收客戶端的SQL語句
        Statement st = conn.createStatement();
        rt1 = st.executeQuery(sql);    //查詢數據庫
        while (rt1.next()) {
            prout.println(rt1.getString("id"));
            prout.println(rt1.getString("course_name"));
            prout.println(rt1.getString("type"));
            prout.println(rt1.getString("text"));
            prout.println("over");      //提示客戶端習題內容發送完畢
            prout.println(rt1.getString("answer"));
            prout.println("over");       //提示客戶端習題答案發送完畢
            prout.println(rt1.getString("chapter"));
            prout.println(rt1.getString("section"));
            prout.println(rt1.getString("difficulty"));
            prout.flush();
        }
        rt1.close();    //關閉結果集
        st.close();     //關閉 Statement
    } catch (IOException ex) {
        System.err.println(ex.toString());
    } catch (SQLException ex1) {
        System.err.println(ex1.toString());
    }finally{
        prout.println("End");        //提示客戶端習題發送完畢
        prout.flush();
    }
}
public void sendCourse(){
     String  sql="select * from course;";
      try {
          Statement st = conn.createStatement();
          ResultSet rt1 = st.executeQuery(sql);
         while(rt1.next()){
             prout.println(rt1.getString(1));
             prout.println(rt1.getString(2));
              prout.println(rt1.getString(3));
               prout.println(rt1.getString(4));
                prout.println(rt1.getString(5));
                 prout.println(rt1.getString(6));
             prout.flush();
         }
        prout.println("End");        //提示客戶端習題發送完畢
        prout.flush();
         rt1.close();
         st.close();
    } catch (SQLException ex1) {
        System.err.println(ex1.toString());
    }
}
/**
 * 響應客戶端的修改、添加命令
 */
public void receive(){
    Vector SQLbean=new Vector();
    String sql;
    try {
        while(true){
            sql=bufin.readLine();     //接收客戶端的SQL語句
            if(sql.equals("over")) break;
            SQLbean.addElement(sql);
        }
      Statement  st = conn.createStatement();
      for(int i=0;i<SQLbean.size();i++)
      {
        st.executeUpdate(SQLbean.elementAt(i).toString());  //執行SQL語句
        }
       st.close();
   }catch(SQLException ed){
       System.err.println(ed.toString());
   }catch(IOException ed){
        System.err.println(ed.toString());
   }
}
/**
 * 響應客戶端的登錄命令
 */
public void login(){
     String password;
     String sql;
     ResultSet rt1,rt2;
    try {
        ID = bufin.readLine();         //接收客戶端的登錄ID
        password=bufin.readLine();     //接收客戶端的密碼
    } catch (IOException ex) {
        prout.println("NET error");
        prout.flush();
        System.err.println(ex.toString());
        return;
    }
    for(int i=0;i<userContainer.size();i++){      //檢查該用戶ID是否已登錄
        if(ID.equals(userContainer.elementAt(i))){
            prout.println("該用戶已在異地登錄");
            prout.flush();
            return;
        }
    }
  sql="select * from user where user_id='"+ID+"' and password='"+password+"';";
    try {
        Statement  st = conn.createStatement();
         rt1=st.executeQuery(sql);   //查詢數據庫
        if (rt1.next()) {            // 用戶ID、密碼正確
            prout.println("OK");
            prout.flush();
            userContainer.addElement(ID);   //將用戶ID添加到userContainer中
            prout.println(rt1.getString(2));
            prout.println(rt1.getString(4));
            prout.println(rt1.getBoolean(5));
            prout.println(rt1.getString(6));
            prout.println(rt1.getString(7));
            rt2=st.executeQuery("select course_name from user_course where user_id='"+ID+"';");
            while(rt2.next()){
                 prout.println(rt2.getString(1));   //發送用戶所教課程名給客戶端
            }
            prout.println("over");
            prout.flush();
            rt2.close();
        }
        else {     // 用戶ID、密碼不正確
          prout.println("用戶ID或密碼出錯");
          prout.flush();
        }
      rt1.close();
      st.close();
    } catch (SQLException ex2) {
     prout.println("數據庫讀取失敗");
     prout.flush();
     System.err.println(ex2.toString());
    }
}
/**
 * 下載試卷到客戶端
 */
public void load(){
    String readin, filechar;
    String filepath,answerpath;
    Statement st,st2;
    ResultSet rt;
    int i;
    try {
        readin = bufin.readLine();    //接收客戶端的查詢語句
        st = conn.createStatement();
        rt=st.executeQuery(readin);
        BufferedReader fileread=null;
        BufferedReader answerread=null;
        while(rt.next()){
            try{
            filepath=rt.getString("path");
            fileread=new BufferedReader(new FileReader(filepath));
            answerpath=filepath.substring(0,filepath.length()-8)+"answer.txt";
            answerread=new BufferedReader(new FileReader(answerpath));
          }catch (IOException ex) {
                i=rt.getInt(1);
            //    System.err.println(ex.toString()+i);
                try{
                   st2= conn.createStatement();
                   st2.executeUpdate("delete from test where test_id=" + i +";");
                   st2.close();
              }catch (SQLException  exl) {
                  System.err.println(exl.toString()+i);
              }
                continue;
            }
            prout.println(rt.getString("course_name"));
            prout.println(rt.getString("user_name"));
            prout.println(rt.getString("test_type"));
            prout.println(rt.getString("date"));
            prout.flush();
            while((filechar=fileread.readLine())!=null){
               prout.println(filechar);
               prout.flush();
            }
            prout.println("fileover");
            prout.flush();
            fileread.close();
            fileread=null;
            while((filechar=answerread.readLine())!=null){
                prout.println(filechar);
                prout.flush();
            }
            prout.println("answerover");
            prout.flush();
            answerread.close();
            answerread=null;
        }
        rt.close();
        st.close();
      } catch (SQLException ex1) {
          System.err.println(ex1.toString());
      }catch (IOException ex) {
           System.err.println(ex.toString());
     }finally{
        prout.println("End");
        prout.flush();
    }
}
/**
 * 響應客戶端上傳試卷
 */
public void transfer(){
    String readin,course_name,user_name,type,path;
    String sql="select test_id from test;";
    int test_id;
    String filename;
   PrintWriter fileout,answerout;
    Date datetime=new Date();
    java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd");
    String date=formatter.format(datetime);           //獲得當前系統時間
    try {
        Statement st = conn.createStatement();
        ResultSet rt=st.executeQuery(sql);
        if(rt.next()){
            rt.last();        //取最后一條記錄
            test_id = rt.getInt(1);
        }else test_id=0;
        rt.close();
        st.close();
        sql="insert into test(course_name,user_name,test_type,path,date) values(?,?,?,?,'"+date+"');";
        PreparedStatement pst=conn.prepareStatement(sql);    //將上傳試卷屬性插入到數據庫中去
            course_name= bufin.readLine();    //獲得課程名屬性
            test_id++;
            pst.setString(1,course_name);
            user_name=bufin.readLine();      //獲得創建者屬性
            pst.setString(2,user_name);
            type=bufin.readLine();        //獲得試卷類型屬性
            pst.setString(3,type);
            filename=test_id+"test.txt";
            path="test/"+filename;
            pst.setString(4,path);     //設計試卷路徑屬性
            pst.executeUpdate();   //執行插入語句
            pst.close();
           fileout=new PrintWriter(new FileOutputStream(path));
           while(true){
                readin=bufin.readLine();
                if(readin.equals("over"))break;
                fileout.println(readin);
                fileout.flush();
           }
      fileout.close();
      path=path.substring(0,path.length()-8)+"answer.txt";
      answerout=new PrintWriter(new FileOutputStream(path));
                     while(true){
                          readin=bufin.readLine();
                          if(readin.equals("over"))break;
                          answerout.println(readin);
                          answerout.flush();
                     }
                answerout.close();
    } catch (IOException ex) {
         System.err.println(ex.toString());
    }catch (SQLException ex1) {
         System.err.println(ex1.toString());
    }
}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品沙发午睡系列990531| 天天影视涩香欲综合网| 最新国产精品久久精品| 亚洲成人av免费| 成人av网在线| 欧美r级电影在线观看| 一区二区三国产精华液| 国产**成人网毛片九色| 日韩免费高清av| 亚洲成人黄色影院| 91性感美女视频| 欧美激情在线免费观看| 国内精品嫩模私拍在线| 欧美精品乱码久久久久久按摩| 亚洲欧洲精品天堂一级 | 欧美精品粉嫩高潮一区二区| 欧美精彩视频一区二区三区| 日韩精品久久久久久| 欧美在线一区二区| 亚洲人成精品久久久久| 成人黄色一级视频| 久久丝袜美腿综合| 激情综合五月婷婷| 欧美va亚洲va香蕉在线| 蜜臀av国产精品久久久久| 欧美日韩国产精选| 亚洲一级二级在线| 在线观看免费一区| 亚洲精品va在线观看| 91视频.com| 亚洲精品乱码久久久久久久久| 99热精品一区二区| 国产精品国产a级| 欧美日韩中文国产| 亚洲综合久久久久| 欧美日韩一区二区在线观看| 亚洲二区在线视频| 欧美精品日日鲁夜夜添| 青青草精品视频| 精品久久99ma| 国产精品亚洲一区二区三区妖精 | 日韩专区一卡二卡| 欧美精品丝袜久久久中文字幕| 婷婷丁香激情综合| 欧美一区二区三区视频在线| 理论电影国产精品| 久久久一区二区三区捆绑**| 成人一级片网址| 亚洲欧洲成人自拍| 欧美制服丝袜第一页| 亚洲18女电影在线观看| 日韩欧美在线观看一区二区三区| 麻豆精品一区二区av白丝在线| 日韩免费看的电影| 国产成人精品免费网站| 日韩毛片精品高清免费| 欧洲av一区二区嗯嗯嗯啊| 午夜精品一区二区三区三上悠亚| 日韩一区二区在线观看视频| 国产在线视频一区二区三区| 亚洲欧洲三级电影| 欧美日韩国产综合一区二区三区| 日本网站在线观看一区二区三区| 国产亚洲精品超碰| 91蜜桃网址入口| 久久电影网站中文字幕| 国产精品视频免费| 欧美另类变人与禽xxxxx| 狠狠色丁香久久婷婷综| ●精品国产综合乱码久久久久| 精品视频免费看| 国产精品主播直播| 亚洲国产成人av| 久久久久久亚洲综合影院红桃| 97精品久久久午夜一区二区三区 | 18涩涩午夜精品.www| 色狠狠色狠狠综合| 紧缚捆绑精品一区二区| 亚洲视频在线一区| 欧美sm美女调教| 91久久人澡人人添人人爽欧美| 激情文学综合网| 亚洲午夜在线视频| 国产精品蜜臀av| 精品日韩欧美在线| 欧美性高清videossexo| 福利一区福利二区| 另类的小说在线视频另类成人小视频在线| 国产精品久99| 久久看人人爽人人| 日韩一区二区三区电影在线观看| 91一区二区在线| 国产91精品欧美| 久久成人免费网站| 首页欧美精品中文字幕| 曰韩精品一区二区| 国产精品福利影院| 久久久久国产成人精品亚洲午夜 | 午夜精品福利一区二区三区蜜桃| 中文字幕第一区| 久久久久国产精品免费免费搜索| 日韩一区二区精品在线观看| 欧美午夜宅男影院| 99re热这里只有精品免费视频| 欧美日韩美少妇| 欧美丝袜第三区| 一本久道中文字幕精品亚洲嫩| 国产aⅴ精品一区二区三区色成熟| 青椒成人免费视频| 日本女优在线视频一区二区| 亚洲福利一区二区| 亚洲一区二区不卡免费| 亚洲免费伊人电影| 亚洲免费观看高清在线观看| 亚洲日本中文字幕区| 国产三级精品三级在线专区| 久久综合av免费| 久久精品欧美一区二区三区麻豆| 久久久www成人免费毛片麻豆| 欧美精品一区二区三区蜜臀| 久久久久久久久99精品| 久久久久国产免费免费| 国产精品色哟哟网站| 亚洲欧洲精品一区二区精品久久久 | 亚洲第一精品在线| 最新成人av在线| 久久成人免费日本黄色| 韩日欧美一区二区三区| 激情丁香综合五月| 国产精品一区在线观看乱码| 从欧美一区二区三区| 91在线免费看| 欧美老女人在线| 欧美成人精品3d动漫h| 精品国产伦一区二区三区观看方式 | 久久这里只有精品6| 国产拍揄自揄精品视频麻豆| 国产精品久久精品日日| 亚洲综合无码一区二区| 人人爽香蕉精品| 国产九色sp调教91| 在线欧美日韩精品| 日韩久久免费av| 国产亚洲精品福利| 亚洲精品中文在线影院| 日韩极品在线观看| 国产成人亚洲精品青草天美| 日本精品一级二级| 91精品国产手机| 国产精品二三区| 视频一区视频二区在线观看| 国产成人在线视频免费播放| 色悠悠久久综合| 精品国产一区二区在线观看| 国产精品毛片久久久久久| 午夜精品成人在线视频| 国产精品影视网| 色综合久久久网| 欧美精品一区二| 亚洲综合免费观看高清在线观看 | 亚洲国产婷婷综合在线精品| 美女看a上一区| 高清在线不卡av| 欧美一区二区三区啪啪| 国产精品国产馆在线真实露脸| 三级精品在线观看| 99国产精品视频免费观看| 91麻豆精品国产| 亚洲欧美日韩人成在线播放| 激情小说欧美图片| 3atv一区二区三区| 亚洲精品成人少妇| 国产精品一二三区在线| 欧美夫妻性生活| 亚洲精品日韩一| 不卡一二三区首页| 欧美岛国在线观看| 视频一区二区三区在线| 99精品国产热久久91蜜凸| 久久色成人在线| 老司机一区二区| 91精品国产91久久久久久最新毛片| 亚洲欧美偷拍另类a∨色屁股| 国模无码大尺度一区二区三区| 欧美伦理视频网站| 一区二区三区中文字幕| jlzzjlzz国产精品久久| 久久久久久久免费视频了| 毛片av中文字幕一区二区| 欧美日韩久久久一区| 一区二区三区四区乱视频| av电影在线不卡| 中文在线免费一区三区高中清不卡| 国产一区二区三区免费播放| 欧美电影免费观看高清完整版在线 | 中文字幕在线免费不卡| 国产美女精品一区二区三区| 日韩欧美二区三区| 免费av网站大全久久| 91精品国产手机|