Tags:

Cách sử dụng JDBC kết nối đến Oracle database

Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách sử dụng JDBC kết nối đến Oracle database. Ở đây mình giả định máy tính các bạn đã cài đặt sẵn Oracle database.

Download JDBC driver cho Oracle

Để triển khai một ứng dụng Java sử dụng JDBC để kết nối đến oracle database, chúng ta cần tải JDBC driver tương ứng và import nó vào project.

Hiện tại chúng ta có 2 phiên bản JDBC driver chính cho oracle database:

  •  OJDBC 8: tương thích JDK 8, cho Oracle database 11g and 12c.
  •  OJDBC 10: tương thích JDK 10, cho Oracle database 18c và 19c.

LƯU Ý: Oracle yêu cầu người dùng phải có tài khoản Oracle để tải xuống, vì vậy bạn có thể phải đăng ký tài khoản nếu chưa có.

Sau khi tải thành công chúng ta sẽ tiến hành giải nén tệp và đặt tệp ojdbc10.jar dưới đường dẫn classpath của dự án của bạn như bình thường như sử dụng bất kỳ tệp jar nào.

Hoặc nếu bạn đang sử dụng project maven thì cần thêm mssql-jdbc dependency vào pom.xml

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>1.0</version>
    <scope>system</scope>
    <systemPath>d:/Path/To/Oracle/JDBC/ojdbc8.jar</systemPath>
</dependency>

JDBC kết nối đến Oracle database

Đối với JDBC, để kết nối đến một database bất kỳ chúng ta luôn cần có các thông tin cơ bản như URL, username, password, database name. Dưới đây là cú pháp cơ bản của chuỗi kết nối dùng để kết nối đến Oracle database.

 
jdbc:oracle:<drivertype>:@<database>


jdbc:oracle:<drivertype>:<user>/<password>@<database>

Trong đó:

  • drivertype: có thể là thin, oci hoặc kprb.
  • database: có thể là định danh máy chủ hostname:port:SID hoặc TNSNAMES
  • tnsnames.ora nằm trên máy khách. port mặc định là 1521.

Theo Oracle, nếu máy khách JDBC và máy chủ cơ sở dữ liệu Oracle của bạn đang chạy trên cùng một máy, bạn nên sử dụng OCI driver vì nó nhanh hơn nhiều so với Thin driver ( OCI có thể sử dụng Inter Process Communication – IPC trong khi Thin chủ có thể sử dụng network connection).

Ví dụ bạn muốn kết nối đến database với username là tiger và password là scott với SID là productDB thông qua port mặc định trên host dbHost sử dụng Thin driver thì chuỗi kết nối sẽ như sau:

String url = “jdbc:oracle:thin:tiger/scott@dbHost:1521:productDB”

Nếu sử dụng OCI driver

String url = “jdbc:oracle:oci:tiger/scott@localhost:1521:productDB”
String url = “jdbc:oracle:oci:tiger/scott@dbHost:1521:productDB”

Nếu bạn có TNSNAMES productionDB trong tnsnames.ora file thì đường dẫn có thể là 

	
String url = “jdbc:oracle:oci:@productionDB”

Ví dụ

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
public class Main {
 
    public static void main(String[] args) {
 
        Connection conn1 = null;
        Connection conn2 = null;
        Connection conn3 = null;
 
        try {
            // Đăng ký JDBC driver. Điều này không cần thiết
            // đối với jdbc phiên bản 4.0 trở về sau
            Class.forName("oracle.jdbc.OracleDriver");
 
            // Cách #1
            String dbURL1 = "jdbc:oracle:thin:tiger/scott@localhost:1521:productDB";
            conn1 = DriverManager.getConnection(dbURL1);
            if (conn1 != null) {
                System.out.println("Connected with connection #1");
            }
 
            // Cách #2
            String dbURL2 = "jdbc:oracle:thin:@localhost:1521:productDB";
            String username = "tiger";
            String password = "scott";
            conn2 = DriverManager.getConnection(dbURL2, username, password);
            if (conn2 != null) {
                System.out.println("Connected with connection #2");
            }
 
            // Cách 3 #3
            String dbURL3 = "jdbc:oracle:oci:@ProductDB";
            Properties properties = new Properties();
            properties.put("user", "tiger");
            properties.put("password", "scott");
            properties.put("defaultRowPrefetch", "20");
            conn3 = DriverManager.getConnection(dbURL3, properties);
 
            if (conn3 != null) {
                System.out.println("Connected with connection #3");
            }
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (conn1 != null && !conn1.isClosed()) {
                    conn1.close();
                }
                if (conn2 != null && !conn2.isClosed()) {
                    conn2.close();
                }
                if (conn3 != null && !conn3.isClosed()) {
                    conn3.close();
                }
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}

Nguồn

https://www.codejava.net/java-se/jdbc/connect-to-oracle-database-via-jdbc

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x