应用Java程序动态创建ODBC数据源的实例
2007-10-29 20:15
771 查看
通过Java动态创建ODBC数据源来访问DBF文件,需要用到registry,来修改注册表。
其实,主要是动态创建ODBC数据源,开始很简单,可以手工设置一次数据源,当然也可以通过程序直接生成,问题都不大。下面只说怎样修改。
然后就是通过,sun.jdbc.odbc.JdbcOdbcDriver来获取数据,
其实,文件名,是可以动态获取的,一般可以通过java中的File类来获取:
第一种就是这样,需要注意的是registry的使用,其实很简单的,只要把DLL文件放到classpath下就可以了。
第二种其实更简单,就是通过另一个开元的类包jdbf.jar,使用方法也很简单,网上有很多资料,可以查询。也就不多说了。
其实,主要是动态创建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:commonytestdata70901"; //我的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:commonytestdata"); File[] df = file.listFiles(); for(int k =0;k<df.length;k++){ if(df[k].isDirectory()){ //因为文件夹中包含DBF文件,所以判断是文件夹,而不是文件 System.out.println("===kkkk=="+k+"====="+df[k].getName()); } } } }
第一种就是这样,需要注意的是registry的使用,其实很简单的,只要把DLL文件放到classpath下就可以了。
第二种其实更简单,就是通过另一个开元的类包jdbf.jar,使用方法也很简单,网上有很多资料,可以查询。也就不多说了。
相关文章推荐
- 基础应用:java web三层架构程序实例
- 通过java动态创建ODBC数据源来访问DBF文件
- 基础应用:java web三层架构程序实例(组图)
- Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架
- Java3D应用实例-创建空间几何模型
- JAVA动态模块的设计实现以及如何通过newInstance()来创建带参的构造类实例
- KETTLE“设置变量“、”变量赋值”"和“自己定义JAVA代码”的实例应用(kettle动态excel文件名需要重点参考看1.1.4)
- Oracle Java Cloud系列(02)——创建Java云的应用服务器实例 及 数据库云实例
- Android OpenGL ES(六)创建实例应用OpenGLDemos程序框架 .
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架
- Protobuf动态解析在Java中的应用 包含例子程序
- JNI中在被调用的C/C++函数中如何访问Java程序中的类,并编写应用实例
- 基于Protobuf动态解析在Java中的应用 包含例子程序
- Android OpenGL ES 开发教程(7):创建实例应用OpenGLDemos程序框架
- java 程序加载过程---2-创建类实例对象
- Java零基础:一步步教你如何使用eclipse创建项目及编写小程序实例
- jstack应用实例,java方法调用阻塞实例,dubbo创建消费者阻塞。
- protobuf在java应用中通过反射动态创建对象(DynamicMessage)
- 动态编译java程序实例