14.在access数据库c:\source.mdb中,表product结构如下:(pid number(3),pname char(10),price number(4))。已知数据源名字为“mysource”,请编写java应用程序连接数据库,查询并输出表product中价格大于100元的记录。
时间: 2023-06-23 18:03:05 浏览: 103
查询记录功能,从access数据库中读取,Adodc1.RecordSource = "select * from 订单表 where 订
5星 · 资源好评率100%
### 回答1:
要编写Java应用程序连接到Access数据库中的表product,并查询价格大于100元的记录,需要进行以下步骤:
1. 加载JDBC驱动程序,因为Access数据库需要使用ODBC驱动程序,所以我们可以使用ucanaccess jdbc驱动,需要将它的jar包添加到项目中。
2. 建立连接,使用JDBC API建立与Access数据库的连接,需要提供连接字符串和用户名密码等信息。
3. 创建SQL查询语句,这里要查询表product中价格大于100元的记录,可以使用SELECT语句来实现。
4. 执行查询,使用JDBC API的Statement对象的executeQuery方法执行查询语句,将结果保存在ResultSet对象中。
5. 处理结果,从ResultSet中读取查询结果,并输出。
以下是代码示例,实现上述操作:
```
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class AccessDemo {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); // 加载驱动
String dbUrl = "jdbc:ucanaccess://c:/source.mdb;memory=false"; // 连接字符串
conn = DriverManager.getConnection(dbUrl); // 建立连接
stmt = conn.createStatement(); // 创建Statement对象
String sql = "SELECT * FROM product WHERE price > 100"; // 创建查询语句
rs = stmt.executeQuery(sql); // 执行查询
while (rs.next()) { // 处理结果
int pid = rs.getInt("pid");
String pname = rs.getString("pname");
int price = rs.getInt("price");
System.out.println(pid + "\t" + pname + "\t" + price);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally { // 关闭资源
try {
if (rs != null)
rs.close();
if (stmt != null)
stmt.close();
if (conn != null)
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
以上就是连接Access数据库,查询表product中价格大于100元的记录的java应用程序的实现过程。
### 回答2:
首先需要在Java应用程序中使用JDBC连接Access数据库c:\source.mdb。需要使用JDBC-ODBC桥连接Access数据库,因此需要首先在Windows中创建数据源(DSN)。假设我们已经在Windows中创建了名为“mysource”的DSN,现在就可以在Java程序中使用该数据源连接Access数据库了。
以下是与数据库连接并查询的Java代码示例:
```
import java.sql.*;
public class AccessDBTest {
public static void main(String[] args) {
String url = "jdbc:odbc:mysource";
String user = "";
String password = "";
try {
Connection con = DriverManager.getConnection(url, user, password);
Statement stmt = con.createStatement();
String sql = "SELECT * FROM product WHERE price > 100";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int pid = rs.getInt("pid");
String pname = rs.getString("pname");
int price = rs.getInt("price");
System.out.printf("%d\t%s\t%d\n", pid, pname, price);
}
rs.close();
stmt.close();
con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
在以上代码中,首先指定了数据库连接的URL、用户名和密码,并使用`DriverManager.getConnection()`方法创建了一个数据库连接。然后使用连接创建了一个`Statement`对象,并使用该对象执行了一条查询语句。查询结果使用`ResultSet`对象返回,我们可以使用其`next()`方法逐行读取查询结果。
对于每一行记录,我们使用`ResultSet`对象的`getInt()`、`getString()`等方法获取相应列的值,并输出到屏幕上。
需要注意的是,在使用JDBC连接Access数据库时需要使用ODBC驱动程序,因此需要在Windows中安装好ODBC驱动程序和Access数据库引擎。
### 回答3:
要编写Java应用程序连接Access数据库,首先需要下载驱动。在这里,我们选用ucanaccess作为连接Access的驱动。
下载地址:http://ucanaccess.sourceforge.net/site.html
下载完成后,要先将ucanaccess-x.x.x-bin.zip解压缩,在解压缩后的文件夹中找到lib文件夹,将里面的ucanaccess.jar和jackcess-2.1.11.jar加入到项目的classpath中。
在连接数据库之前,需要先将Access文件的路径和数据源名字传递给UCanAccess,具体代码如下:
```
String url = "jdbc:ucanaccess://" + "c:/source.mdb" + ";showschema=true";
Connection conn = DriverManager.getConnection(url, "", "");
```
接下来,我们编写查询数据库的代码。先编写SQL查询语句:
```
String sql = "SELECT * FROM product WHERE price > 100";
```
然后创建Statement对象,执行SQL语句,并输出查询结果:
```
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int pid = rs.getInt("pid");
String pname = rs.getString("pname");
int price = rs.getInt("price");
System.out.println(pid + "\t" + pname + "\t" + price);
}
```
完整的代码如下:
```
import java.sql.*;
public class AccessDemo {
public static void main(String[] args) throws Exception {
String url = "jdbc:ucanaccess://" + "c:/source.mdb" + ";showschema=true";
Connection conn = DriverManager.getConnection(url, "", "");
String sql = "SELECT * FROM product WHERE price > 100";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int pid = rs.getInt("pid");
String pname = rs.getString("pname");
int price = rs.getInt("price");
System.out.println(pid + "\t" + pname + "\t" + price);
}
}
}
```
执行代码后,就可以看到查询结果了。
阅读全文