下面将详细讲解“Java连接Oracle数据库并查询”的完整攻略。
准备工作
在连接Oracle数据库之前,我们需要完成以下几项准备工作:
- 确保已经安装了 Java Runtime Environment(JRE),并设置了系统环境变量。
- 下载并安装 Oracle 数据库。
- 启动 Oracle 数据库,并创建一个测试用户。我们假设该用户的用户名为 testuser,密码为 testpass,它拥有一个测试表 test_table,其中包含若干行数据。
连接数据库
要连接 Oracle 数据库,需要使用 Java Database Connectivity(JDBC)API。JDBC 是 Java 用于与各种关系型数据库进行通信的一种标准。以下是连接 Oracle 数据库的步骤:
- 加载 JDBC 驱动程序。Oracle 提供了官方的 JDBC 驱动程序,可以从 Oracle 官网上下载并安装。我们假设安装了版本为 12c 的 JDBC 驱动程序。在代码中,可以使用 Class.forName() 方法加载驱动程序:
Class.forName("oracle.jdbc.driver.OracleDriver");
- 创建数据库连接。在连接数据库之前,需要指定数据库的 URL,用户名和密码。以下是一个数据库连接示例:
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String user = "testuser";
String password = "testpass";
Connection conn = DriverManager.getConnection(url, user, password);
其中,url 是 Oracle 数据库的链接字符串,形如:jdbc:oracle:thin:@主机名:端口号:服务名。user 和 password 分别是连接 Oracle 数据库的用户名和密码。
- 创建 Statement 对象。Statement 对象用于向 Oracle 数据库发送 SQL 语句,并接收返回结果。以下是一个创建 Statement 对象的示例:
Statement stmt = conn.createStatement();
现在,我们已经成功连接 Oracle 数据库,并创建了一个 Statement 对象。接下来,我们可以向 Oracle 数据库发送 SQL 语句了。
发送 SQL 语句
以下是向 Oracle 数据库发送 SQL 语句的步骤:
- 构造 SQL 语句。SQL 语句是用于查询或操作数据库的命令。以下是一个查询语句的示例:
String sql = "SELECT * FROM test_table WHERE id > 10";
- 执行 SQL 语句。执行 SQL 语句可以使用 Statement 对象的 executeQuery() 方法。该方法返回一个 ResultSet 对象,其中包含 SQL 语句的结果集。以下是一个执行 SQL 语句的示例:
ResultSet rs = stmt.executeQuery(sql);
- 处理结果集。ResultSet 对象包含了 SQL 语句的结果集。我们可以使用 ResultSet 对象的各种方法,比如 getString()、getInt()、getFloat() 等,来获取结果集的数据。以下是一个处理结果集的示例:
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
float price = rs.getFloat("price");
System.out.println("id: " + id + ", name: " + name + ", price: " + price);
}
在以上示例中,我们使用了 ResultSet 对象的 next() 方法遍历结果集的所有行,使用 getInt()、getString()、getFloat() 方法获取每行的数据,最后打印到控制台上。
示例代码
以下是一个完整的 Java 连接 Oracle 数据库并查询的示例:
import java.sql.*;
public class OracleDemo {
public static void main(String[] args) {
try {
// 加载 JDBC 驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
// 创建数据库连接
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String user = "testuser";
String password = "testpass";
Connection conn = DriverManager.getConnection(url, user, password);
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 执行 SQL 语句
String sql = "SELECT * FROM test_table WHERE id > 10";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
float price = rs.getFloat("price");
System.out.println("id: " + id + ", name: " + name + ", price: " + price);
}
// 关闭连接
rs.close();
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以上示例代码演示了如何连接 Oracle 数据库并查询一张表中 ID 大于 10 的记录。如果要查询其他条件的记录,只需修改 SQL 语句即可。
以下是另一个示例,演示了如何向 Oracle 数据库插入一条记录:
import java.sql.*;
public class OracleDemo {
public static void main(String[] args) {
try {
// 加载 JDBC 驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
// 创建数据库连接
String url = "jdbc:oracle:thin:@localhost:1521:ORCL";
String user = "testuser";
String password = "testpass";
Connection conn = DriverManager.getConnection(url, user, password);
// 创建 Statement 对象
Statement stmt = conn.createStatement();
// 执行 SQL 语句
String sql = "INSERT INTO test_table (id, name, price) VALUES (4, 'Apple', 10.99)";
int rows = stmt.executeUpdate(sql);
System.out.println(rows + " rows affected");
// 关闭连接
stmt.close();
conn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
以上示例代码演示了如何向 Oracle 数据库插入一条记录,该记录的 ID 为 4,名称为 Apple,价格为 10.99。如果要插入其他记录,只需修改 SQL 语句即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java连接Oracle数据库并查询 - Python技术站