每个版本的配置都不一样,这里主要是配置Oracle21c的连接
Oracle21c + jdbc10 + jkd11
首先创建一个项目名为Jdbctest
然后创建两个类
一个为配置类
OracleJdbc
代码如下:
package com.oysept.utils; import java.sql.Connection; import java.sql.DriverManager; /** * JDBC连接Oracle * @author ouyangjun */ public class OracleJdbc { /** * 获取Oracle数据库Connection * @return */ public static Connection getConnection() { String driver = "oracle.jdbc.driver.OracleDriver"; // Oracle数据库驱动类 String url = "jdbc:oracle:thin:@localhost:1521:ORCL"; // Oracle数据库连接url String user = "system"; // Oracle数据库登录账号 String password = "root"; // Oracle数据库登录密码 return getConnection(driver, url, user, password); } public static Connection getConnection(String driver, String url, String user, String password) { Connection conn = null; try { Class.forName(driver); // 加载数据库驱动 conn = DriverManager.getConnection(url, user, password); // 获取数据库连接 } catch (Exception e) { System.out.println(e); } return conn; } }
然后测试类
TestJDBC
package com.oysept.utils; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import com.oysept.utils.OracleJdbc; public class TestJDBC { public static void main(String[] args) { executeQuery(); } public static void executeQuery() { // 查询SQL String sql = "select 学号, 姓名, 年龄, 性别 from STUDENTS"; //注意修改自己的表与字段 Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; try { conn = OracleJdbc.getConnection(); // 获取Oracle连接 ps = conn.prepareStatement(sql); // 处理需要执行的SQL rs = ps.executeQuery(); // 执行SQL while (rs.next()) { // 处理SQL返回的结果 System.out.println("学号:" + rs.getString("学号") + ", 姓名:" + rs.getString("姓名") + ", 年龄:" + rs.getString("年龄") + ", 性别:" + rs.getString("性别") ); //自己的表与字段 } } catch (SQLException e) { System.out.println(e); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (conn != null) { conn.close(); } } catch (SQLException e) { System.out.println(e); } } } }
这里导入自己的jar包
注意配置时的版本问题
可能遇到:java.sql.SQLException: ORA-28040: 没有匹配的验证协议(12c或者12c rac)
打开dbhome_1\NETWORK\ADMIN里面
添加 SQLNET.ALLOWED_LOGON_VERSION=8
高版本用SQLNET.ALLOWED_LOGON_VERSION=11
SQLNET.ALLOWED_LOGON_VERSION_SERVER=11
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=11
或者
错误: 加载主类 时出现 LinkageError 解决办法
都是版本问题,注意版本对应
这里推荐一个下载jar的网站:Maven Repository: com.oracle.database.jdbc (mvnrepository.com)