java通过jdbc读取oracle数据库数据和插入数据
时间: 2023-12-06 12:45:40 浏览: 106
好的,下面是一个简单的 Java JDBC 读取 Oracle 数据库并插入数据的示例代码:
1. 首先需要安装 Oracle 的 JDBC 驱动程序,可以从官方网站下载并安装。
2. 在 Java 代码中导入 JDBC 驱动程序:
```
import java.sql.*;
```
3. 连接到 Oracle 数据库:
```
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
```
其中 url 中的 localhost:1521 是 Oracle 数据库的主机地址和端口号,orcl 是要连接的数据库实例名。user 和 password 分别是数据库的用户名和密码。
4. 从 Oracle 数据库中读取数据:
```
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
// do something with the data
}
rs.close();
stmt.close();
```
这里使用了 Statement 对象执行了一条 SELECT 查询语句,并使用 ResultSet 对象获取查询结果。查询结果可以使用 rs.next() 方法逐行遍历,然后通过列名获取每一行的数据。
5. 插入数据到 Oracle 数据库:
```
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO mytable (id, name, age) VALUES (?, ?, ?)");
pstmt.setInt(1, 1);
pstmt.setString(2, "John");
pstmt.setInt(3, 30);
pstmt.executeUpdate();
pstmt.close();
```
这里使用了 PreparedStatement 对象执行了一条 INSERT 插入语句,通过占位符 ? 传递参数。pstmt.executeUpdate() 方法用于执行插入操作。
6. 最后记得关闭数据库连接:
```
conn.close();
```
完整的代码示例:
```java
import java.sql.*;
public class OracleJDBCExample {
public static void main(String[] args) throws SQLException {
String url = "jdbc:oracle:thin:@localhost:1521:orcl";
String user = "username";
String password = "password";
Connection conn = DriverManager.getConnection(url, user, password);
// read data from Oracle database
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
// do something with the data
}
rs.close();
stmt.close();
// insert data into Oracle database
PreparedStatement pstmt = conn.prepareStatement("INSERT INTO mytable (id, name, age) VALUES (?, ?, ?)");
pstmt.setInt(1, 1);
pstmt.setString(2, "John");
pstmt.setInt(3, 30);
pstmt.executeUpdate();
pstmt.close();
conn.close();
}
}
```
阅读全文