1. 程式人生 > >【Java】如何用Java實現資料庫查詢

【Java】如何用Java實現資料庫查詢

首先要建立需要查詢的檔案在你的檔案裡。記住路徑,需要用檔案流來找到這個檔案,我的文字建立如下:
這裡寫圖片描述
這裡寫圖片描述

這裡寫圖片描述

import java.io.*;
import java.util.*;
public class DAO {
    //通過學生姓名找到學生學號
    private String findSnumBySname(String Sname)
    {
     String result = "";
     try
      {
         //相對路徑建立檔案字元輸入流:..\\..\\名字
        FileReader file = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\Student.txt"
); //建立緩衝的字元輸入流物件 BufferedReader brea = new BufferedReader(file); //讀取第一行資料 String str = brea.readLine(); while(str!=null) { //用逗號將一行資料切割為字串陣列 String[] strs = str.split(","); if(strs[1].equals(Sname)) { result = strs[0
]; break; } //未找到讀取下一行資料 str = brea.readLine(); } file.close(); }catch(Exception ex) { System.out.println("未找到"); } return result; } //通過學生學號找到課程號,返回值為多個,用ArrayList(容器) private ArrayList<String
> findCnumsBySnum(String Snum) { ArrayList<String> result = new ArrayList<String>(); try { FileReader file1 = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\SC.txt"); BufferedReader bre = new BufferedReader(file1); String tmp = bre.readLine(); while(tmp != null) { String[] strs = tmp.split(","); if(strs[0].equals(Snum)) { result.add(strs[1]); } tmp = bre.readLine(); } file1.close(); } catch(Exception ex) { System.out.print(""); } return result; } //通過課程號找學號 private ArrayList<String> findSnumByCnum(String cnum) { ArrayList<String> result = new ArrayList<String>(); try { FileReader file = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\SC.txt"); BufferedReader rea = new BufferedReader(file); String str = rea.readLine(); while(str!=null) { String[] tmp = str.split(","); if(tmp[1].equals(cnum)) { result.add(tmp[0]); } str = rea.readLine(); } file.close(); }catch(Exception ex) { System.out.println(""); } return result; } //通過學號找姓名 private String findSnameBySnum(String Snum) { String result = ""; try { FileReader file = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\Student.txt"); BufferedReader bre = new BufferedReader(file); String str = bre.readLine(); while(str!=null) { String[] tmp = str.split(","); if(tmp[0].equals(Snum)) { result = tmp[1]; } str = bre.readLine(); } file.close(); } catch(Exception ex) { System.out.println(""); } return result; } //通過課程號找到課程名稱 private ArrayList<String> findCnamesByCnum(String Cnum) { ArrayList<String> list=new ArrayList<String>(); try { FileReader file2 = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\Course.txt"); BufferedReader brea2 = new BufferedReader(file2); String tmp = brea2.readLine(); while(tmp!=null) { String[] strs = tmp.split(","); for(int i = 0;i<list.size();i++) { if(strs[0].equals(Cnum))//????? { list.add(strs[1]); //break; } } tmp = brea2.readLine(); } file2.close(); } catch(Exception ex) { System.out.println(""); } return list; } //通過課程號找課程名 private String findCnameByCnum(String cno) { String result = ""; try { FileReader file2 = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\Course.txt"); BufferedReader brea2 = new BufferedReader(file2); String tmp = brea2.readLine(); while(tmp!=null) { String[] strs = tmp.split(","); if(strs[0].equals(cno)) { result = strs[1]; break; } tmp = brea2.readLine(); } file2.close(); } catch(Exception ex) { System.out.println(""); } return result; } //通過學生姓名找到課程名稱 public ArrayList<String> findCnamesBySname(String sname) { //找學號 String snum = findSnumBySname(sname); //找課程號 ArrayList<String> cnums = findCnumsBySnum(snum); if(cnums.size()!=0) { ArrayList<String> list = new ArrayList<String>(); for(int i = 0;i<cnums.size();i++) { list.add(findCnameByCnum(cnums.get(i))); } return list; } else { return null; } } //通過課程名找課程號 private String findCnumByCname(String Cname) { String result = ""; //ArrayList<String> list=new ArrayList<String>(); try { FileReader file2 = new FileReader("d:\\Workspaces\\MyEclipse 8.5\\Course.txt"); BufferedReader brea2 = new BufferedReader(file2); String tmp = brea2.readLine(); while(tmp!=null) { String[] strs = tmp.split(","); if(strs[1].equals(Cname)) { result = strs[0]; break; } tmp = brea2.readLine(); } file2.close(); } catch(Exception ex) { System.out.println(""); } return result; } //通過課程名找到該門課的所有成績 private ArrayList<String> findGradeByCname(String Cname) { ArrayList<String> result = new ArrayList<String>(); String cnum = findCnumByCname(Cname); try { FileReader file = new FileReader("d:\\Workspaces\\MyEclipse 8.5\\SC.txt"); BufferedReader brea = new BufferedReader(file); String str = brea.readLine(); while(str!=null) { String[] tmp = str.split(","); if(tmp[1].equals(cnum)) { result.add(tmp[2]); } str = brea.readLine(); } file.close(); }catch(Exception ex) { System.out.println(""); } return result; } //通過課程名找到選修該課程的學生 public ArrayList<String> findSnameByCname(String Cname) { ArrayList<String> result = new ArrayList<String>(); String cnum = findCnumByCname(Cname); ArrayList<String> Snum = findSnumByCnum(cnum); try { FileReader file4 = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\Student.txt"); BufferedReader bre = new BufferedReader(file4); String str = bre.readLine(); while(str!=null) { String[] tmp = str.split(","); for(int i = 0;i<Snum.size();i++) { if(tmp[0].equals(Snum.get(i))) { result.add(tmp[1]); } } str = bre.readLine(); } file4.close(); }catch(Exception ex) { System.out.println("未找到"); } return result; } //根據所給課程名返回該課程的平均成績 public float AverageGrade(String Cname) { float result = -1.0f; ArrayList<String> list = findGradeByCname(Cname); for(int i = 0;i<list.size();i++) { result+=Integer.parseInt(list.get(i)); } result = result/(float)(list.size()); return result; } //通過學生姓名和課程名找到成績 public int findGradeBySnameCname(String sname,String cname) { int result =-1; String snum = findSnumBySname(sname); String cnum = findCnumByCname(cname); try { FileReader file3 = new FileReader("D:\\Workspaces\\MyEclipse 8.5\\SC.txt"); BufferedReader bre = new BufferedReader(file3); String str = bre.readLine(); while(str!=null) { String[] tmp = str.split(","); if((tmp[0].equals(snum))&&(tmp[1].equals(cnum))) { result =Integer.parseInt(tmp[2]); } str = bre.readLine(); } file3.close(); } catch(Exception ex) { System.out.println(""); } return result; } }

//主函式
import java.util.ArrayList;
//import java.util.*;
public class test {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        DAO file = new DAO();
        System.out.println(file.AverageGrade("數學"));

        //通過學生姓名找到選修課程
        /*ArrayList<String> list = file.findCnamesBySname("李勇");
        if(list!=null)
        {
        for(int i = 0;i<list.size();i++)
            {
                System.out.println(list.get(i));
            }
        }*/


        //通過課程名找到學生姓名
        /*ArrayList<String> list = file.findSnameByCname("數學");
        if(list!=null)
        {
        for(int i = 0;i<list.size();i++)
        {
            System.out.println(list.get(i));
        }
        }*/

        //通過學生姓名和課程名找到成績
        //System.out.println(file.findGradeBySnameCname("王敏", "資料庫"));


        //部分介面函式的測試
        //System.out.println(file.FindSNumBySName("劉晨"));
        //System.out.println(file.FindCnumBySname("劉晨").size());
        //System.out.println(file.findSnumBySname("劉晨"));
        //System.out.println(file.findSnameBySnum("201215123"));
        //System.out.println(file.findSnumByCnum("2"));
        /*ArrayList<String> list = file.findGradeByCname("數學");
        if(list!=null)
        {
        for(int i = 0;i<list.size();i++)
            {
                System.out.println(list.get(i));
            }
        }*/

    }
}