酷徒LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:acc  数据  Ms Access  JAVA  

介绍

本文介绍如何使用JDBC从Java应用程序访问一个ms访问数据库。 不要对数据库的基本知识进行细节化,让我们来看看主题。

ODBC 驱动器

在Java中,我们需要在运行时加载一个驱动程序来连接任何数据源。 ODBC数据源也同样如此。 驱动程序是作为一个在运行时定位和加载的类实现的。 JDBC连接的ODBC驱动程序名为 sun.java.odbc.JdbcOdbcDriver

ODBC连接字符串

Visual C++ 中一样,我们需要一个ODBC连接字符串来连接到数据源。 例如我们正在编写一个VC++程序,它连接到一个名为 myDB.mdb的访问数据库文件,该文件位于应用程序目录中。 我们将使用一个ODBC连接字符串,如下所示:

"Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;"

用Java编写类似的连接字符串,但是还有一个附加规范指向连接所需的驱动程序,即,jdbc:odbc:。 然后,使用连接字符串进行跟踪。 因此,Java中的连接字符串变成:

"jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)}; DBQ=myDB.mdb;"

因此,为了泛化 上面,可以与一个 ODBC DSN连接,我们需要一个表单的连接字符串:

"jdbc:odbc:ODBC DSN String"

导入要连接到数据库的类

包含数据库相关类的包包含在 java.sql 中。 因此,我们按如下方式导入:

import java.sql.*;

加载 JDBC:ODBC 驱动程序

按如下方式动态加载类 sun.java.odbc.JdbcOdbcDriver:

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

在应用程序空间中打开 ms access数据库文件

为此,我们使用上面指定的ODBC DSN:

String database = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;";
Connection conn = DriverManager.getConnection(database, "", "");

创建语句对象以执行SQL查询

要在已经打开的数据库上执行SQL查询,必须创建 Statement。 它使用下面的代码完成:

Statement s = conn.createStatement();

完成作业后清理

要在完成SQL查询后清理,我们调用 s.close() 来处理对象 Statement。 然后,在我们结束程序或者决定数据库不再需要之前,我们将用 conn.close() 关闭数据库。 下面的代码在完成后进行清理:

s.close(); // Close the statementconn.close(); // Close the database. Its no more required

在有效语句对象上执行SQL语句

当需要执行SQL查询时调用 s.execute("SQL statement")。 它返回由查询影响的行数。 如果最后一个查询保存要返回的ResultSet,通常发生在 选择。 输入查询,然后调用返回 ResultSet 对象的s.getResultSet()。 下面的代码演示如何使用 选择 查询并显示表前两列中包含的值。

String selTable = "SELECT * FROM SOMETABLE";
s.execute(selTable);
ResultSet rs = s.getResultSet();while((rs!=null) && (rs.next()))
{
 System.out.println(rs.getString(1) + " :" + rs.getString(2));
}

这就是我们现在看到的一个演示应用程序。

示例应用程序

以下应用程序执行以下操作:

  • 加载 JDBC ODBC驱动程序。
  • 打开一个ODBC数据源,该数据源打开应用程序工作目录中的文件 myDB.mdb。
  • 获取SQL执行的Statement 对象。
  • 生成带有随机数生成器的table的名称。
  • 创建表格。
  • 进入 25个随机条目。
  • 显示表格的内容。
  • 删除或者删除创建的table。
  • 关闭 Statement 对象,然后关闭与数据库的连接。

以下是所需的代码:

/* Program:
 * Setup database driver manager to understand and use ODBC MS-ACCESS data source.
 * Written by Arnav Mukhopadhyay (ARNAV.MUKHOPADHYAY@smude.edu.in)
 * Compile as: javac dbAccess.java
 */import java.sql.*;publicclass dbAccess
{
 publicstaticvoid main(String[] args)
 {
 try {
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 String database = 
 "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=myDB.mdb;";
 Connection conn = DriverManager.getConnection(database, "", "");
 Statement s = conn.createStatement();
 // create a tableString tableName = "myTable" + String.valueOf((int)(Math.random() * 1000.0));
 String createTable = "CREATE TABLE" + tableName + 
 " (id Integer, name Text(32))";
 s.execute(createTable); 
 // enter value into tablefor(int i=0; i<25; i++)
 {
 String addRow = "INSERT INTO" + tableName + " VALUES (" + 
 String.valueOf((int) (Math.random() * 32767)) + ", 'Text Value" + 
 String.valueOf(Math.random()) + "')";
 s.execute(addRow);
 }
 // Fetch tableString selTable = "SELECT * FROM" + tableName;
 s.execute(selTable);
 ResultSet rs = s.getResultSet();
 while((rs!=null) && (rs.next()))
 {
 System.out.println(rs.getString(1) + " :" + rs.getString(2));
 }
 // drop the tableString dropTable = "DROP TABLE" + tableName;
 s.execute(dropTable);
 // close and cleanup s.close();
 conn.close();
 }
 catch(Exception ex)
 {
 ex.printStackTrace();
 }
 }
}

那就是我所拥有的 !



文章标签:JAVA  数据  acc  Ms Access  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷