Java中經過JDBC遠程鏈接Oracle數據庫

經過jdbc鏈接數據庫,攏共分三步:java

第一步:下載一個JDBC的驅動,而後把jar包扔到項目裏並add to build path;sql

第二步:去本地oracle文件夾下找到「TNSNAMES.ORA」文件,打開找到對應數據庫的鏈接字符串,做爲jdbc的鏈接字符串;數據庫

第三步:寫代碼,經過jdbc鏈接數據庫。oracle

從網上找了段代碼,作了下修改。如下爲查詢數據庫表中全部字段及字段值類型,遍歷數據庫表中全部數據(其中xxx均爲須要替換的信息):ide

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;

public class ConnectDB {
    public static void main(String[] args) {
        connectDB();
    }

    public static void connectDB() {
        Connection con = null;
        PreparedStatement pre = null;
        ResultSet results = null;
        ResultSetMetaData resultSetMetaData = null;
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            System.out.println("開始嘗試鏈接數據庫!");
            // 必須用oracle文件夾下"tnsnames.ora"配置文件中配置的鏈接字符串進行遠程鏈接數據庫
            String url = "jdbc:oracle:" + "thin:@(DESCRIPTION =" + "(ADDRESS_LIST ="
                    + "(ADDRESS = (PROTOCOL = TCP)(HOST = xxx)(PORT = xxx))" + ")" + "(CONNECT_DATA ="
                    + "(SERVICE_NAME = xxx)" + ")" + ")";
            String user = "xxx";
            String password = "xxx";
            con = DriverManager.getConnection(url, user, password);
            System.out.println("鏈接成功!");
            String sql = "select * from xxx";
            pre = con.prepareStatement(sql);
            System.out.println("開始執行SQL語句!");
            results = pre.executeQuery();
            resultSetMetaData = results.getMetaData();
            int columnCount = resultSetMetaData.getColumnCount();
            // 獲取數據庫表全部字段名及字段值類型
            for (int i = 1; i <= columnCount; i++) {
                System.out.println(resultSetMetaData.getColumnName(i) + ":" + resultSetMetaData.getColumnTypeName(i));
            }
            while (results.next()) {
                for (int i = 1; i <= columnCount; i++) {
                    System.out.print(results.getString(i)+"\t\t");
                }
                System.out.println();
            }

        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                if (results != null)
                    results.close();
                if (pre != null)
                    pre.close();
                if (con != null)
                    con.close();
                System.out.println("數據庫鏈接已關閉!");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
相關文章
相關標籤/搜索