计世网
首页 | 资讯   独家分析 专题 人物 科技 | 资源   信息化 方案案例 CIO文库 周报全文 企业中心 职场 电子杂志 社区联盟
互动   创业 Wiki 博客 社区 视频 直播 | 产品   服务器 商用软件 存储 安全 网络通信 智能手机 笔记本 台式机 芯片 办公
iPhone 地震 CCBN Moto分拆 CIO ERP Vista 智能手机 工信部 N95 P2P WLAN 四核服务器 Nvidia 安全 IT两会 互联网年会 奥运频道
 您的位置: 计世网 > 软件 > 软件开发 > 开发编程 > dotnet技术 > 正文
·Windows 7 中必须抛弃的五个旧功能
·小心别让你的Windows 7 麻烦缠身
·酷狗音乐EQ 让你变身个性DJ
·价格or实用?中小企业用什么ERP软件
·Word 2007自动提取数据制作成绩单!
·三大突破 金山毒霸2009启用“云安全”
·告诉你Windows文件复制的数量极限
·Photoshop CS4 全新功能试用评测!
java动态创建ODBC数据源来访问DBF文件 [收藏] [打印] [推荐]
作者:chinaz  2008-08-27 10:02:31
好久没有使用过VFP了,记忆中似乎也只是在学校中使用过。这次出差,客户给了一大堆dbf文件,要求处理。  

无奈啊,顾客就是上帝。虽然可以通过许多途径来处理,但是总想用java语言来处理。最终还是需要通过JNI来处理,不过用到了一个开元的操作注册表的registry-3.1.3,使用后,发现蛮简单的,网上已有很多资料介绍,就不多说了。  

想了两种解决方法,第一种比较麻烦,但是看网上很多人问,就也总结了出来,其实就是通过java动态创建ODBC数据源来访问DBF文件,这个就需要用到registry,来修改注册表了。  

其实,主要是动态创建ODBC数据源,开始很简单,可以手工设置一次数据源,当然也可以通过程序直接生成,问题都不大。下面只说怎样修改。  

import com.ice.jni.registry.RegStringValue; 

import com.ice.jni.registry.Registry; 

import com.ice.jni.registry.RegistryKey;  

public class TestC { 

 public static void main(String[] str) { 

        try { 

          

              RegistryKey child = Registry.HKEY_CURRENT_USER 

                      .openSubKey("Software").openSubKey("ODBC").openSubKey 

("ODBC.INI").openSubKey("data_0930",RegistryKey.ACCESS_ALL);// 

操作权限是通过RegistryKey来获取的。 

              String de = "F:\\commony\\test\\data\\070901";  // 

我的DBF数据的目录//其中,data_0930是我第一次设置的数据源的一个注册表的名称 

              System.out.println(child.getStringValue("SourceDB")); 

             child.setValue(new RegStringValue(child,"SourceDB",de)); 

              System.out.println(child.getFullName()); 

        } catch (Exception e) { 

              e.printStackTrace(); 

        } 

    } 

}  

然后就是通过,sun.jdbc.odbc.JdbcOdbcDriver来获取数据,  

import java.sql.DriverManager; 

import java.sql.*; 

public class TestOdbc { 

  public TestOdbc() { 

  } 

  public static void main(String[] args) { 

    java.sql.Connection conn = null; 

    java.sql.PreparedStatement pt = null; 

    java.sql.ResultSet rs = null; 

    try { 

      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 

    } 

    catch (ClassNotFoundException ex1) { 

    } 

    try { 

      conn = DriverManager.getConnection("jdbc:odbc:data_0930", "", ""); 

      pt = conn.prepareStatement(" select *  from test_table"); 

      rs = pt.executeQuery(); 

      while(rs.next()){ 

        System.out.println("==="+rs.getString(1)); 

        System.out.println("==="+rs.getString(2)); 

        System.out.println("==="+rs.getString(3)); 

        System.out.println("==="+rs.getString(4)); 

        System.out.println("==="+rs.getString(5)); 

      } 

    } 

    catch (SQLException ex) { 

    } 

  } 

}  

其实真的很简单。  

其实,文件名,是可以动态获取的,一般可以通过java中的File类来获取:  

import java.io.File; 

public class TestD { 

 public static void main(String[] args){ 

  File file = new File("F:\\commony\\test\\data"); 

  File[] df = file.listFiles(); 

  for(int k =0;k   if(df[k].isDirectory()){ // 

因为文件夹中包含DBF文件,所以判断是文件夹,而不是文件 

    System.out.println("===kkkk=="+k+"====="+df[k].getName()); 

   } 

  } 

 } 

}  

第一种就是这样,需要注意的是registry的使用,其实很简单的,只要把DLL文件放到classpath下就可以了。  

第二种其实更简单,就是通过另一个开元的类包jdbf.jar,使用方法也很简单,网上有很多资料,可以查询。也就不多说了。 

网页编辑:大鱼
本文关键字: java ODBC数据源
如果您对“java动态创建ODBC数据源来访问DBF文件”有任何疑问要咨询,或您对我们专家的解答有任何疑义,请您点击以下的链接提交意向单,我们的编辑和信息化专家将会很快为您做出回答,您提供的信息经过审核后将有机会出现在我们的网页上。
  专家介绍
相关文章
·深入探讨Java的类加载机制
·Java中对HashMap的深度分析
·JAVA专业术语集
·Java中用软引用阻止内存泄漏
·J2ME中需要的Java基础知识
推荐文章
·三大突破 金山毒霸2009启用“云安全”
·价格or实用?中小企业用什么ERP软件
·Photoshop CS4 全新功能试用评测!
·Windows 7 中必须抛弃的五个旧功能
·小心别让你的Windows 7 麻烦缠身
文章评论 您的姓名 您的Email
  
频道热门导航
软件新闻 开发频道 软件下载 软件论坛 软件白皮书 SOA 虚拟化 管理平台 操作系统 数据库 Linux 中间件 办公系统
计世网热门导航
资讯中心 信息化 商用软件 服务器 方案案例 智能手机 笔记本 手机社区 笔记本社区
热门文章排行
·下载:Firefox 3.0.4正式版
·国际观点:是谁在编写Linux?
·Google利用Chrome和Gmail...
·金融危机:软件外包业战战兢兢
·Adobe软件成最佳攻击目标 ...
·一个时代的终结:挥别Windo...
·评论:瑞星误杀 技术缺失还...
·连线杂志:Windows操作系...
热门关键字导航
·新 闻 ·评 测 ·方 案 ·开 发 ·下 载 ·专 题 ·论 坛 ·SaaS ·电子商务 ·Web开发
专题推荐 更多
如何助企业过冬?
云计算的未来
·十大最具影响力开源软件
·雷霆万钧还是春风化雨?微软...
·云计算、SaaS和软件的危险三...
·颠覆微软 谷歌推出Google Ch...
·免费安全 安不安全?
·计世网商用软件频道新版上线...
论坛热贴
·百度平台优势初显
·小心"摩登王"和"窃贼LD"木...
·大换血 百度Hi发布Beta2新版
·教你如何删除ppsds.pgf
·IBM Lotus Symphony正式版发布
·“最强女助理”裸照背后
关于我们 | 客服热线 | 广告服务 | 招聘信息 | 法律声明 | 投稿指南 | 联系方式
Copyright(C) ccw.com.cn,All rights reserved
中国计算机世界出版服务公司内容版权所有
京ICP证010182