日期:2014-05-16  浏览次数:20519 次

Java 实现对VF数据库的访问

        这段时间一直忙项目,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之后然后循环遍历数据表中每条记录,取得想要的字段值就不在话下了吧!