Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

17.3. Oracle

17.3.1. SID

jdbc:oracle:thin:@<host>:<port>:<SID> Example:

jdbc:oracle:thin:@192.168.2.1:1521:oral
			

17.3.2. SERVICE_NAME

jdbc:oracle:thin:@//<host>:<port>/<service_name>

Example:

 
jdbc:oracle:thin:@//192.168.2.1:1521/orcl.example.com 			
			

17.3.3. TNS

jdbc:oracle:thin:@<TNSName> Example:

jdbc:oracle:thin:@TNS
			

17.3.4. Oracle RAC Cluster

Oracle 11G 不能直接链接 RAC 的 VIP

jdbc:oracle:thin:@(DESCRIPTION =
	(ADDRESS_LIST = 
		(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.10.10)(PORT = 1521))
		(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.10.20)(PORT = 1521))
		(LOAD_BALANCE = yes)
	)
	(CONNECT_DATA =
		(SERVER = DEDICATED)
		(SERVICE_NAME = orcl.example.com)
		(FAILOVER_MODE =(TYPE = SELECT )(METHOD = BASIC)(RETRIES = 120)(DELAY = 5)))
	)
			
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=16.50.26.29)(PORT=1521))(LOAD_BALANCE=yes)(FAILOVER=ON)(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl.example.com)(FAILOVER_MODE=(TYPE=SESSION)(METHOD=BASIC))))			
			

17.3.5. Oracle JDBC Demo

			
package cn.netkiller.zabbix;

import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

/**
 * Java JDBC Oracle Demo!
 *
 */
public class Oracle {

	String url = null; // 数据库链接地址
	String username = null;// 用户名,系统默认的账户名
	String password = null;// 你安装时选设置的密码

	public void openConfig() {
		String connectionfig = "jdbc.properties";
		Properties properties = new Properties();
		try {
			properties.load(new FileInputStream(connectionfig));
			this.url = properties.getProperty("jdbc.url");
			this.username = properties.getProperty("jdbc.username");
			this.password = properties.getProperty("jdbc.password");
		} catch (FileNotFoundException e) {
			System.out.println(
					e.getMessage() + " Working Directory = " + System.getProperty("user.dir") + "/" + connectionfig);
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
		if (this.url == null || this.username == null || this.password == null) {
			System.out.println("This Propertie file is invalid");
			// throw new Exception("");
		}

	}

	public void testOracle() {
		Connection connection = null;// 创建一个数据库连接
		ResultSet result = null;// 创建一个结果集对象
		Statement statement = null;
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");// 加载Oracle驱动程序
			connection = DriverManager.getConnection(this.url, this.username, this.password);
			String sql = "select current_date from dual";
			statement = connection.createStatement();
			result = statement.executeQuery(sql);
			result.next();
			System.out.printf("%s %s", result.getDate(1), result.getTime(1));
		} catch (ClassNotFoundException e) {
			System.out.println(e.getMessage());
		} catch (SQLException e) {
			System.out.println(e.getMessage());
		} finally {
			try {
				if (result != null)
					result.close();
				if (connection != null)
					connection.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) {
		Oracle oracle = new Oracle();
		oracle.openConfig();
		oracle.testOracle();
	}
}