В чем разница между подключением драйвера OCI и THIN с соединением источника данных между java и oracle XE?
Я пишу приведенные ниже коды для соединения между Java и Oracle 10g XE с использованием 3-х способов (OCI, THIN и источника данных), код работает успешно, но не знает разницы между THIN и OCI с источником данных соединение.
1 -
public static void main (String args[]) throws SQLException
{
OracleDataSource ods = new OracleDataSource();
ods.setURL("jdbc:oracle:thin:hr/[email protected]:1521/XE");
Connection con = ods.getConnection();
System.out.println("Connected");
con.close();
}
2-
public static void main(String args[])
{
try
{
// load oracle driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// connect using Thin driver
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
System.out.println("Connected Successfully To Oracle");
con.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
3 -
public static void main(String args[])
{
try
{
// load oracle driver
Class.forName("oracle.jdbc.driver.OracleDriver");
// connect using Native-API (OCI) driver
Connection con = DriverManager.getConnection("jdbc:oracle:oci:@","hr","hr" );
System.out.println("Connected Successfully To Oracle using OCI driver");
con.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
Ответы
Ответ 1
Oracle предоставляет четыре типа драйверов для своей базы данных, но я только перечислил два вопроса, о которых вы просили.
Драйвер OCI - это тип 2 JDBC и использует собственный код для подключения к базе данных. Таким образом, это только вариант на платформах, в которых есть собственные драйверы Oracle, и это не "чистая" реализация Java.
Oracle JDBC Thin driver - это тип 4 Драйвер JDBC, который использует Java-сокеты для непосредственного подключения к Oracle. Он реализует Oracle SQL * Net TCP/IP протокол напрямую. Поскольку это 100% Java, она независима от платформы и может также запускаться из апплета. (не то, что вам нужно)
Ответ 2
Как тонкий драйвер JDBC, так и драйвер JDBC OCI говорят о том же сетевом протоколе. С точки зрения сервера нет разницы между ними. Тонкий драйвер JDBC - это 100% Java и поставляется в одном автономном банке (для дополнительных функций потребуется несколько дополнительных банок). Драйвер JDBC OCI делает вызовы JNI в клиентской библиотеке OCI C и, следовательно, зависит от установленного полного клиента Oracle (OCI - это также то, что использует sqlplus). Oracle рекомендует использовать тонкий драйвер JDBC, который используется большинством клиентов. Это самый быстрый драйвер и самый надежный.