Java基于ODBC连接Oracle的实现方法
ODBC
ODBC(Open Database Connectivity)即开放数据库连接,是Microsoft为Windows平台上的软件和数据库产生的一种连接规范。该规范要求采用ODBC驱动程序作为中介层,支持一种面向SQL的API,使应用软件能通过ODBC来访问到数据。
ODBC适用于Windows系统中的不同数据库之间的远程数据查询,ODBC驱动将请求传递给ODBC管理器,由它去完成与本地应用程序和远程服务器之间的通信以及数据的转换、处理和返回,然后让ODBC管理器将过程结果返回给客户端。
JDBC-ODBC Bridge
JDBC-ODBC Bridge 是JDK中自带的一个驱动,用于连接数据库源为ODBC的数据库,但是随着Java的发展,该驱动已经不再推荐使用。
JDBC的发展后其发展出另一个产品:Type 4 JDBC驱动(即Java Native Driver),它不需要中间件的参与,能够和数据库直接进行连接,性能得到地很大提升。因此,我们不再推荐使用JDBC-ODBC Bridge。
JDBC与Oracle直接连接
在JDK1.2之后,Java引入了JDBC 2.0,原来的JDBC API变成了JDBC 1.0 API。JDBC 2.0 API是JDBC 1.0 API的扩展,定义了一些新的方法和接口。而在JDBC 3.0中,Oracle特意发布了一个更为优秀的Oracle JDBC驱动程序(大家看下Oracle的安装目录,在jdbc的文件夹下就能找到对应的程序)。总之,如今直接使用JDBC连接Oracle是一个比较好的选择。
Step 1:下载JDBC驱动
在官方网站 Oracle官网下载对应的JDBC驱动,在这里我们以ojdbc6.jar为例。
Step 2:连接Oracle数据库
先创建一个Connection对象,代码如下:
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@//localhost:1521/orcl", "username", "password");
其中,jdbc:oracle:thin表示使用thin连接方式(比较通用一点,也可以使用oci)。@//localhost:1521/orcl表示连接本地的orcl数据库,用户名和密码分别为username和password。
完整代码示例:
import java.sql.Connection;
import java.sql.DriverManager;
public class OracleJDBC {
public static void main(String[] args) {
// JDBC driver
final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
// Database URL
final String DB_URL = "jdbc:oracle:thin:@//localhost:1521/orcl";
// Database credentials
final String USER = "username";
final String PASS = "password";
Connection conn = null;
try {
// Register JDBC driver
Class.forName(JDBC_DRIVER);
// Open a connection
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Step 3:操作数据库
连接成功后,就可以进行数据库的操作了。这里以插入一条记录为例,代码如下:
Statement stmt = null;
String sql = "INSERT INTO EMPLOYEE " +
"(ID, NAME, AGE) " +
"VALUES (1, 'Tom', 25)";
try {
stmt = conn.createStatement();
stmt.executeUpdate(sql);
System.out.println("Inserted record successfully");
} catch (SQLException e) {
e.printStackTrace();
}
完整示例代码如下:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class OracleJDBC {
public static void main(String[] args) {
// JDBC driver
final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";
// 编码方式
final String ENCODING = "?useUnicode=true&characterEncoding=UTF-8";
// Database URL
final String DB_URL = "jdbc:oracle:thin:@//localhost:1521/orcl" + ENCODING;
// Database credentials
final String USER = "username";
final String PASS = "password";
Connection conn = null;
Statement stmt = null;
try {
// Register JDBC driver
Class.forName(JDBC_DRIVER);
// Open a connection
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Connected successfully");
// Execute a query
stmt = conn.createStatement();
String sql;
sql = "INSERT INTO EMPLOYEE " +
"(ID, NAME, AGE) " +
"VALUES (1, 'Tom', 25)";
stmt.executeUpdate(sql);
System.out.println("Inserted record successfully");
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
总结
以上就是Java基于ODBC连接Oracle的实现方法,不仅可以通过JDBC-ODBC Bridge连接,也可以直接连接,推荐直接连接。在操作数据库时,我们需要使用Statement或PreparedStatement对象,通过executeUpdate方法执行SQL语句。通过Connection对象的close()方法关闭数据库连接。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java基于odbc连接oracle的实现方法 - Python技术站