日期:2014-05-16 浏览次数:20533 次
这段时间一直忙项目,CSDN荒废有段时间了,现在项目即将验收,花点时间整理一下项目中用到的几个知识点,供以后学习和参考。由于实际的项目中要需要获取另外一个系统的数据,这里你可能已经想到到 被访问的系统数据就是下面我要说的VF数据库。
VF编程语言这在以前也只是听说过,确从来都没有接触。开发工具大部分用的都是Visual Foxpro 7.0 ,这里版本可能不是最新的。配置开发环境,熟悉语法,编写demo程序 半天下来感觉事情并没有想象中的那么复杂。VF数据库不像MySql、Oracle数据库,新建项目和数据库都可以在Visual Foxpro 7.0开发工具上进行操作,类似VB。 .dbf是表文件的后缀 .CDX 文件是表示与这个表相关的索引。
项目中具体要实现的功能是要把每天的数据用报表的形式进行展示。VF系统中已经实现了这个功能,表格显示的数据是从临时表中获取,而临时表中的数据要访问6张表中的数据计算出来,也就是表格显示的数据没有历史记录,每次查询的都是根据日期要重新计算。这里我在实现当然不能去拿临时表中的数据,而是要访问上面提到的6张表数据,每天的数据出来之后要计算一次把它存储到另一张表中。一条记录就对应一天的数据,报表显示当天的数据其实就是数据表中当天的记录了。
下面就是VF数据库访问的Java编程实现:
// 这里存放需要访问的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;
}
数据访问三部曲就到这里,有了rs之后然后循环遍历数据表中每条记录,取得想要的字段值就不在话下了吧!