?? dataretriever.java
字號:
import java.awt.event.*;
import java.sql.*;
import java.util.Vector;
import sun.jdbc.odbc.JdbcOdbcDriver;
public class DataRetriever{
//加載 JDBC 驅(qū)動
static String jdbcDriver="sun.jdbc.odbc.JdbcOdbcDriver";
static String dbName="Contacts";
static String urlRoot="jdbc:odbc:";
private ActionListener exceptionListener=null;
public DataRetriever(){
registerDriver(); //注冊驅(qū)動
}
public void setDatabaseName(String dbName){ //設(shè)置DB名
this.dbName=dbName;
}
public void registerDriver{ //加載驅(qū)動
try{
Class.forName(jdbcDriver);
DriverManager.registerDriver(new JdbcOdbcDriver());
}catch(ClassNotFoundException e){
reportException(e.getMessage());
}
catch(SQLException e){
reportException(e.getMessage());
}
}
public String[][] executeQuery(String SQLQuery){ //執(zhí)行SQL查詢
Vector dataset=new Vector();
String url=urlRoot+dbName;
try{
//連接數(shù)據(jù)庫
Connection con=DriverManager.getConnection(url);
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery(SQLQuery); //把查詢結(jié)果放入結(jié)果集
ResultSetMetaData md=rs.getMetaData();
int nColumns=md.getColumnCount();
//簡單地在ResultSet中循環(huán)
while(rs.next()){
String[] rowData=new String[nColumns];
for(int i=0;i<nColumns;i++){
rowData[i]=rs.getObject(i+1).toString();
}
dataset.addElement(rowData); //加入dataset
}
con.close(); //關(guān)閉連接
}
catch(SQLException e){
reportException(e.getMessage());
}
String[][] records=new String[dataset.size()][]; //返回值放入records二維數(shù)組
for(int i=0;i<records.length;i++){
records[i]=(String[])dataset.elementAt(i);
}
return records;
}
public void setExceptionListenner(ActionListerner exceptionListener){
this.exceptionListerner=exceptionListerner;
}
private void reportException(String exception){ //處理異常
if(exceptionListener!=null){
ActionEvent evt=new ActionEvent(this,0,exception);
exceptionListener.actionPerformed(evt);
}
else{
System.err.println(exception);
}
}
public static void main(String args[]){
DataRetriever retriever=new DataRetriever();
retriever.setDatabaseName("Contacts"); //設(shè)置DB名
//執(zhí)行SQL語句并把返回值放入records二維數(shù)組
String[][] records=retriever.executeQuery("SELECT * FROM Contact_Info");
for(int i=0;i<records.length;i++){ //從records中逐條取出并打印結(jié)果
String[] record=records[i];
for(int j=0;j<record.length;j++){
if(j>0) System.out.print("\t");
System.out.print(record[j]);
}
System.out.println();
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -