一、目录结构及导包
在使用Oracle驱动进行数据处理前,首先需要配置好目录结构及导入所需包。
路径
├── lib
│ ├── ojdbc6.jar
│ └── ...
└── src
├── com.example
│ └── Main.java
└── jdbc.properties
其中lib目录存放Oracle驱动包,jdbc.properties文件存放JDBC连接数据库的相关配置,具体代码如下:
#jdbc.properties
driver=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:orcl
username=yourUsername
password=yourPassword
接下来,在Main.java中导入所需的包,从jdbc.properties文件中读取数据库连接配置:
package com.example;
import java.sql.*;
import java.io.FileInputStream;
import java.util.Properties;
public class Main {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
Properties props = new Properties();
props.load(new FileInputStream("src/jdbc.properties"));
Class.forName(props.getProperty("driver"));
conn = DriverManager.getConnection(props.getProperty("url"), props.getProperty("username"), props.getProperty("password"));
//...
} catch (Exception e) {
e.printStackTrace();
} finally {
try{if(rs!=null) rs.close();} catch(Exception e){e.printStackTrace();}
try{if(ps!=null) ps.close();} catch(Exception e){e.printStackTrace();}
try{if(conn!=null) conn.close();} catch(Exception e){e.printStackTrace();}
}
}
}
二、数据查询
使用Oracle驱动进行数据查询的步骤如下:
- 创建Connection对象
- 创建PreparedStatement对象
- 执行sql语句,获取查询结果集
- 处理结果集
- 释放资源
具体代码如下:
String sql = "SELECT * FROM user WHERE username=?";
ps = conn.prepareStatement(sql);
ps.setString(1, "张三");
rs = ps.executeQuery();
while(rs.next()) {
//处理结果集
}
三、数据插入、更新和删除
使用Oracle驱动进行数据插入、更新和删除的步骤如下:
- 创建Connection对象
- 开启事务
- 创建PreparedStatement对象
- 执行sql语句
- 提交或者回滚事务
- 释放资源
具体代码如下:
String sql = "INSERT INTO user(username, password) VALUES (?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, "张三");
ps.setString(2, "123456");
int result = ps.executeUpdate();
if(result > 0) {
//处理插入成功的情况
} else {
//处理插入失败的情况
}
四、批量插入
批量插入可以提高数据插入的效率,使用Oracle驱动进行批量插入的步骤如下:
- 创建Connection对象
- 开启事务
- 创建PreparedStatement对象
- 添加多个插入参数
- 执行批量插入
- 提交或者回滚事务
- 释放资源
具体代码如下:
String sql = "INSERT INTO user(username, password) VALUES (?,?)";
ps = conn.prepareStatement(sql);
for(int i=0; i<1000; i++) {
ps.setString(1, "user"+i);
ps.setString(2, "password"+i);
ps.addBatch();
}
ps.executeBatch();
五、数据分页查询
数据分页查询可以提高数据查询效率,使用Oracle驱动进行数据分页查询的步骤如下:
- 创建Connection对象
- 创建PreparedStatement对象
- 计算分页参数并设置
- 执行查询,获取分页后的结果集
- 处理分页后的结果集
- 释放资源
具体代码如下:
int currentPage = 1;
int pageSize = 10;
String sql = "SELECT * FROM user LIMIT ?,?";
ps = conn.prepareStatement(sql);
ps.setInt(1, (currentPage-1)*pageSize);
ps.setInt(2, pageSize);
rs = ps.executeQuery();
while(rs.next()) {
//处理分页后的结果集
}
六、批处理
批处理可以提高数据插入、更新和删除的效率,使用Oracle驱动进行批处理的步骤如下:
- 创建Connection对象
- 开启事务
- 创建Statement对象
- 添加多个sql语句
- 执行批处理
- 提交或者回滚事务
- 释放资源
具体代码如下:
Statement stmt = conn.createStatement();
for(int i=0; i<1000; i++) {
stmt.addBatch("INSERT INTO user(username, password) VALUES ('user"+i+"','password"+i+"')");
}
int[] results = stmt.executeBatch();
for(int result: results) {
if(result > 0) {
//处理插入成功的情况
} else {
//处理插入失败的情况
}
}
七、总结
通过本篇文章的阐述,我们了解了如何高效使用Oracle驱动进行数据处理,从目录结构及导包、数据查询、数据插入、更新和删除、批量插入、数据分页查询、批处理等多个方面详细讲解了相关的操作步骤及具体代码实现。