這段時間一直忙項目,CSDN荒廢有段時間瞭,現在項目即將驗收,花點時間整理一下項目中用到的幾個知識點,供以後學習和參考。由於實際的項目中要需要獲取另外一個系統的數據,這裡你可能已經想到到 被訪問的系統數據就是下面我要說的VF數據庫。
VF編程語言這在以前也隻是聽說過,確從來都沒有接觸。開發工具大部分用的都是Visual Foxpro 7.0 ,這裡版本可能不是最新的。配置開發環境,熟悉語法,編寫demo程序 半天下來感覺事情並沒有想象中的那麼復雜。VF數據庫不像MySql、Oracle數據庫,新建項目和數據庫都可以在Visual Foxpro 7.0開發工具上進行操作,類似VB。 .dbf是表文件的後綴 .CDX 文件是表示與這個表相關的索引。
項目中具體要實現的功能是要把每天的數據用報表的形式進行展示。VF系統中已經實現瞭這個功能,表格顯示的數據是從臨時表中獲取,而臨時表中的數據要訪問6張表中的數據計算出來,也就是表格顯示的數據沒有歷史記錄,每次查詢的都是根據日期要重新計算。這裡我在實現當然不能去拿臨時表中的數據,而是要訪問上面提到的6張表數據,每天的數據出來之後要計算一次把它存儲到另一張表中。一條記錄就對應一天的數據,報表顯示當天的數據其實就是數據表中當天的記錄瞭。
下面就是VF數據庫訪問的Java編程實現:
[html]
<span style="font-size:14px;"> // 這裡存放需要訪問的VF數據庫表數據 測試期間是把表數據放到本地來做的
private static String filePath="D:/ddrbdatas";
public static Connection getConn() {
Connection conn = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String strurl = "jdbc:odbc:Driver={Microsoft Visual FoxPro Driver};UID=;SourceType=DBF;SourceDB="+filePath+";Exclusive=No;";
conn = DriverManager.getConnection(strurl);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return conn;
}
public static PreparedStatement prepare(Connection conn, String sql) {
PreparedStatement pstmt = null;
try {
if(conn != null) {
pstmt = conn.prepareStatement(sql);
}
} catch (SQLException e) {
e.printStackTrace();
}
return pstmt;
}
public static ResultSet getResultSet(PreparedStatement stmt) {
ResultSet rs = null;
try {
if(stmt != null) {
rs = stmt.executeQuery();
}
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}</span>
數據訪問三部曲就到這裡,有瞭rs之後然後循環遍歷數據表中每條記錄,取得想要的字段值就不在話下瞭吧!