【Java】如何用Java實現資料庫查詢
阿新 • • 發佈:2019-01-23
首先要建立需要查詢的檔案在你的檔案裡。記住路徑,需要用檔案流來找到這個檔案,我的文字建立如下:
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));
}
}*/
}
}