Java连接Oracle数据库:深入浅出,带你轻松上手,解决常见问题
发布时间: 2024-06-21 15:07:18 阅读量: 11 订阅数: 13
![Java连接Oracle数据库:深入浅出,带你轻松上手,解决常见问题](https://img-blog.csdnimg.cn/20191124170740482.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0Nvc2ltbzM1OQ==,size_16,color_FFFFFF,t_70)
# 1. Java连接Oracle数据库基础
Java连接Oracle数据库需要使用JDBC(Java Database Connectivity)API。JDBC提供了一组标准接口和类,允许Java应用程序与各种数据库交互,包括Oracle。
连接Oracle数据库需要以下步骤:
1. 加载Oracle JDBC驱动程序:使用`Class.forName()`方法加载Oracle JDBC驱动程序。
2. 建立连接:使用`DriverManager.getConnection()`方法建立到Oracle数据库的连接。需要提供数据库URL、用户名和密码。
# 2. Java连接Oracle数据库实战
### 2.1 连接数据库
#### 2.1.1 建立连接
建立与Oracle数据库的连接需要使用`DriverManager`类中的`getConnection()`方法。该方法需要提供以下参数:
- **数据库URL:**指定数据库的位置和类型,格式为`jdbc:oracle:thin:@<主机名>:<端口号>/<服务名>`。
- **用户名:**连接数据库的用户名。
- **密码:**连接数据库的密码。
```java
// 建立连接
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521/XE", "scott", "tiger");
```
#### 2.1.2 关闭连接
使用完数据库连接后,必须将其关闭以释放资源。关闭连接使用`close()`方法。
```java
// 关闭连接
conn.close();
```
### 2.2 查询数据
#### 2.2.1 执行查询
执行查询使用`Statement`或`PreparedStatement`对象。`Statement`对象用于执行简单的SQL语句,而`PreparedStatement`对象用于执行带参数的SQL语句。
```java
// 使用Statement执行查询
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM employees");
// 使用PreparedStatement执行查询
String sql = "SELECT * FROM employees WHERE department_id = ?";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 20);
ResultSet rs = pstmt.executeQuery();
```
#### 2.2.2 处理查询结果
查询结果存储在`ResultSet`对象中。可以使用`next()`方法逐行遍历结果集,并使用`getXXX()`方法获取每一列的值。
```java
// 遍历结果集
while (rs.next()) {
int employeeId = rs.getInt("employee_id");
String firstName = rs.getString("first_name");
String lastName = rs.getString("last_name");
System.out.println(employeeId + " " + firstName + " " + lastName);
}
```
### 2.3 更新数据
#### 2.3.1 插入数据
插入数据使用`PreparedStatement`对象。`PreparedStatement`对象可以防止SQL注入攻击,并提高性能。
```java
// 插入数据
String sql = "INSERT INTO employees (employee_id, first_name, last_name) VALUES (?, ?, ?)";
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 100);
pstmt.setString(2, "John");
pstmt.setString(3, "Doe");
pstmt.executeUpdate();
```
#### 2.3.2 更新数据
更新数据也使用`PreparedStatement`对象。
```jav
```
0
0