Использует ли Oracle Java
Используют ли базы данных Oracle Java внутри
Каждый клиент начинает сеанс, вызывает логические модули на стороне сервера через точки входа верхнего уровня и в конечном итоге заканчивает сеанс. Серверная среда скрывает управление сеансами, сетями и другими общими ресурсами из размещенных программ Java.
Краткое содержание
Базы данных Oracle используют Java внутри. Oracle предоставляет комплексное решение Java для разработчиков корпоративных приложений. Это решение включает в себя программные интерфейсы на стороне клиента и сервер, инструменты для разработки Java и JVM, интегрированный с базой данных Oracle. Java in Database Development Development предлагает такие функции, как разработка процедур и функций, связанных с данными, расширение возможностей базы данных с помощью библиотек Java, а также Bridging SQL и World Java2ee. Среда программирования Java также предоставляет хранимых процедур Java в качестве компаньона для интерфейсов программирования PL/SQL, JDBC и SQLJ для доступа к данным SQL, а также инструменты для управления классами. Кроме того, базы данных Oracle предлагают интеграцию и функциональность PL/SQL, позволяя вызову существующих программ PL/SQL из Java и наоборот. Драйверы JDBC, предоставленные Oracle.
Ключевые моменты
1. Java в разработке приложений в базе данных:
- Проектирование процедур и функций, связанных с данными, с использованием API Java SE и JDBC.
- Расширение охвата и возможностей базы данных со стандартными и сторонними библиотеками Java.
- Гибкое разделение приложений J2SE для симметричного доступа к данным на уровне JDBC.
- Соединение SQL и J2EE World, вызывая веб -компоненты и соединяя SQL и веб -сервисы.
2. Использование среды программирования Java:
- Java сохраняла процедуры как эквивалент Java и компаньон для PL/SQL.
- Интерфейсы программирования JDBC и SQLJ для доступа к данным SQL.
- Инструменты и сценарии для разработки, загрузки и управления классами.
3. Java хранятся процедуры:
Хранившиеся процедуры Java – это программы Java, развернутые на сервере и запускаются с сервера, как и хранимые процедуры PL/SQL. Они могут быть вызваны прямо или косвенно через триггеры. База данных Oracle обеспечивает полную реализацию стандартного языка программирования Java и JVM.
4. Интеграция PL/SQL и функциональность Oracle RDBMS:
Базы данных Oracle включает вызов существующих программ PL/SQL из программ Java и Java из PL/SQL. Это облегчает использование кода PL/SQL и Java и использования возможностей интернет-вычислений на основе Java. Драйверы JDBC, предоставленные Oracle, включают Thin Driver JDBC, драйвер JDBC OCI и внутренний драйвер на стороне сервера JDBC.
Вопросы
1. Какие функции предлагает Java в разработке приложений базы данных?
Java in Database Development Development предлагает такие функции, как разработка процедур и функций, связанных с данными, расширение возможностей базы данных с помощью библиотек Java, а также Bridging SQL и World Java2ee.
2. Что такое хранящаяся процедура Java, эквивалентная PL/SQL?
Хранилированные процедуры Java служат эквивалентом Java и компаньоном для PL/SQL.
3. Каковы интерфейсы программирования для доступа к данным SQL в Java?
Интерфейсы программирования JDBC и SQLJ используются для доступа к данным SQL в Java.
4. Какие инструменты доступны в среде программирования Java?
Среда программирования Java предоставляет инструменты и сценарии для разработки, загрузки и управления классами.
5. Как можно вызвать на Java хранить процедуры?
Хранившие процедуры Java могут быть вызваны прямо или косвенно через триггеры.
6. Могут ли базы данных Oracle вызывать существующие программы PL/SQL из Java?
Да, базы данных Oracle поддерживают вызов существующих программ PL/SQL из Java.
7. Как Java Applications может получить доступ к данным Oracle SQL?
Приложения Java могут получить доступ к данным Oracle SQL через драйверы JDBC, предоставленные Oracle.
8. Какова цель тонкого водителя JDBC?
Тонкий драйвер JDBC позволяет писать чистые Java -приложения и апплеты, которые получают доступ к данным Oracle SQL. Подходит для веб-приложений и апплетов.
9. Чем драйвер jdbc OCI отличается от тонкого водителя JDBC?
Драйвер JDBC OCI обращается к Oracle-специфическому нативному коду и библиотекам на клиентском или среднем уровне, обеспечивая повышение производительности по сравнению с тонким драйвером JDBC по цене большего размера и установки на стороне клиента.
10. Для чего используется внутренний драйвер на стороне сервера JDBC?
Внутренний драйвер на стороне сервера JDBC позволяет Java-приложения, работающие в Oracle JVM на сервере для доступа к локально определенным данным с использованием JDBC, обеспечивая повышение производительности, используя базовые библиотеки RDBMS Oracle.
Используют ли базы данных Oracle Java внутри
Каждый клиент начинает сеанс, вызывает логические модули на стороне сервера через точки входа верхнего уровня и в конечном итоге заканчивает сеанс. Серверная среда скрывает управление сеансами, сетями и другими общими ресурсами из размещенных программ Java.
Использует ли Oracle Java
Oracle предоставляет разработчикам корпоративных приложений комплексное решение Java для создания, развертывания и управления приложениями Java. Общее решение состоит из программных интерфейсов на стороне клиента и сервера, инструментов для поддержки разработки Java и JVM, интегрированного с базой данных Oracle. Все эти продукты полностью совместимы со стандартами Java. Этот раздел охватывает следующие темы:
- Java в разработке приложений в базе данных
- Использование среды программирования Java
- Java сохраняют процедуры
- Интеграция PL/SQL и функциональность Oracle RDBMS
- Инструменты разработки
- Поддержка интернет -протокола версии 6
1.6.1 Java в разработке приложений в базе данных
Наиболее важными функциями Java в разработке приложений в базе данных являются:
- Проектирование процедур и функций, связанных с данными, с использованием API Java SE и JDBC.
- Расширение охвата и возможностей базы данных со стандартными и сторонними библиотеками Java. Например, доступ к сторонним базам данных с использованием своих драйверов в базе данных и доступа к Hadoop/HDFS.
- Предоставление гибкого разделения платформы Java2, приложения Standard Edition (J2SE) для симметричного доступа к данным на уровне JDBC.
- Bridging SQL и Platform Java2, Enterprise Edition (J2EE) World By:
- Вызов веб -компонентов, таких как JSP и сервис
- Соединение SQL и веб -сервисов с использованием вызовов веб -сервисов
1.6.2 Использование среды программирования Java
В дополнение к Oracle JVM, среда программирования Java предоставляет:
- Java сохраняла процедуры как эквивалент Java и компаньон для PL/SQL. Хранилированные процедуры Java тесно интегрированы с PL/SQL. Вы можете вызвать хранимые процедуры Java из пакетов PL/SQL и процедур PL/SQL из хранимых процедур Java.
- Интерфейсы программирования JDBC и SQLJ для доступа к данным SQL.
- Инструменты и сценарии, которые помогают в разработке, загрузке и управлении классами.
Следующая таблица помогает вам решить, когда использовать, какой Java API:
Чтобы получить Java -процедуру, вызванную из SQL, например, триггер.
Java сохраняют процедуры
Чтобы вызвать статический, простой оператор SQL из известной таблицы с известными именами столбцов из объекта Java.
Чтобы назвать динамические, сложные операторы SQL из объекта Java.
1.6.3 хранилированные процедуры Java
Хранившие процедуры Java – это программы Java, написанные и развернутые на сервере и работают с сервера, точно так же, как хранящаяся процедура PL/SQL. Вы вызываете его напрямую с помощью таких продуктов, как SQL*Plus, или косвенно с триггером. Вы можете получить доступ к нему от любого клиента Oracle Net, например, OCI и Pro*, или JDBC или SQLJ.
Кроме того, вы можете использовать Java для разработки мощных, серверных программ, которые могут быть независимыми от PL/SQL. База данных Oracle обеспечивает полную реализацию стандартного языка программирования Java и полностью соответствующего JVM.
Похожие темы
1.6.4 PL/SQL Integration и Oracle RDBMS
Вы можете позвонить в существующие программы PL/SQL из программ Java и Java от PL/SQL. Это решение защищает и использует ваш код PL/SQL и Java и открывает преимущества и возможности интернет-вычислений на основе Java.
База данных Oracle предлагает два разных API Java для доступа к данным SQL, JDBC и SQLJ. Оба эти API доступны на клиенте, а API JDBC также доступен на сервере. В результате вы можете развернуть свои приложения на клиенте и сервере.
Следующие темы представляют APIS Java, предоставленные базой данных Oracle:
1.6.4.1 драйверы JDBC
JDBC – это протокол доступа к базе данных, который позволяет подключаться к базе данных и запускать операторы SQL и запросы в базу данных. Основные библиотеки классов Java предоставляют следующие API JDBC: Java.SQL и Javax.SQL . Тем не менее, JDBC предназначен для того, чтобы позволить поставщикам снабжать драйверы, которые предлагают необходимую специализацию для конкретной базы данных. Oracle предоставляет следующие различные драйверы JDBC:
JDBC Thin Driver
Вы можете использовать тонкий драйвер JDBC для написания чистых приложений Java и апплетов, которые получают доступ к данным Oracle SQL. Тонкий драйвер JDBC особенно подходит для веб-приложений и апплетов, потому что вы можете динамически загружать его со веб-страницы, аналогично любым другим апплете Java.
JDBC OCI Driver
Драйвер JDBC OCI обращается к Oracle-специфическому нативному коду, то есть не Java-коду и библиотекам на клиентском или среднем уровне, обеспечивая повышение производительности по сравнению с тонким драйвером JDBC, за счет значительно большего размера и установки на стороне клиента.
Внутренний драйвер на стороне сервера JDBC
Oracle Database использует внутренний драйвер на стороне сервера, когда код Java работает на сервере. Это позволяет Java -приложениям, работающим в Oracle JVM на сервере, доступ к локально определенным данным, то есть данные о той же системе и в том же процессе, с JDBC. Он обеспечивает повышение производительности из -за своей способности непосредственно использовать базовые библиотеки RDBMS Oracle, без промежуточного сетевого соединения между кодом Java и DATA SQL. Поддерживая тот же интерфейс Java-SQL на сервере, база данных Oracle не требует от переработки кода при его развертывании.
Похожие темы
Используют ли базы данных Oracle Java внутри?
Редактировать:
Oracle действительно включает JVM, который работает на той же машине, что и сама база данных, но не используется для запуска какого -либо кода «Связок СУБД».Это только для запуска хранимых процедур/функций, написанных на Java.
ответил 13 сентября 2011 года в 6:43
a_horse_with_no_name a_horse_with_no_name
78K 14 14 Золотые значки 157 157 Серебряные значки 194 194 Бронзовые значки
Вау, не знал о части С. +1.
13 сентября 2011 г. в 10:17
Проверьте их «историю временной шкалы»: Oracle.com/us/corporate/timeline/index.HTML: 1983: «Oracle выпускает версию 3 своей базы данных с кодом сервера, написанного на языке программирования C»
13 сентября 2011 г. в 10:24
Я предполагаю, что Java не существует, тогда. Я думаю, что первый Java пришел в Oracle 8i.
13 сентября 2011 г. в 16:59
Внутренний JVM не используется для запуска какого -либо кода «Связанный счагоны». Это только для запуска хранимых процедур/функций, написанных на Java.
13 сентября 2011 года в 18:27
@a_horse_with_no_name – я думаю, это зависит от того, что вы имеете в виду под “стандартными” пакетами. Oracle отправляет несколько пакетов, построенных на Java (например, все, что использует XDB, включая многие пакеты Xmlquery, зависит от внутренней JVM). Это не «стандартные» в смысле пакетов, которые часто используют большинство разработчиков. Но они «стандартные» в том смысле, что они установлены, когда вы делаете установку по умолчанию базы данных Oracle.
1
Введение в Java в базе данных OracleВ этой книге представлен обзор того, как разрабатывать, загрузить и выполнить ваши приложения Java в базе данных Oracle.
Эта глава содержит следующую информацию:
- Глава содержимого
- Что нового в этом релизе?
- Обзор Java
- Зачем использовать Java в базе данных Oracle?
- Что отличается с OracleJVM?
- Основные компоненты OracleJVM
- Стратегия приложения Oracle’s Java
- Desupport of J2ee Technologies в базе данных Oracle
Глава содержимого
- Представлен Java Language для программистов базы данных Oracle. Разработчики Oracle PL/SQL привыкли к разработке приложений на стороне сервера, которые имеют жесткую интеграцию с данными SQL. Вы можете разработать приложения на стороне сервера Java, которые используют преимущества масштабируемости и производительности базы данных Oracle. Если вы не знакомы с Java, см. «Обзор Java» .
- Изучает, почему может рассмотреть возможность использования Java в базе данных Oracle. См. «Зачем использовать Java в базе данных Oracle?” . Кроме того, для каждого из API -интерфейсов Java приведено краткое описание, поддерживаемые в базе данных Oracle. Список API включает JDBC и Java, хранящиеся процедуры. Смотрите «Стратегия приложения Oracle’s Java» .
Что нового в этом релизе?
В следующих разделах описываются дополнения к этому выпуску:
- Обновление до J2SE 1.4.1
- Новая модель памяти для выделенных сеансов режима
- Вызовы веб -сервисов базы данных
- Родной интерфейс Java
- EJB вызов
Обновление до J2SE 1.4.1
В этом выпуске системные классы обновляются с J2SE 1.3 до j2se 1.4.1. J2SE 1.4.1 совместим с J2SE 1.3. Sun Microsystems публикует список несовместимости между J2SE 1.4.1 и предыдущие версии на следующем веб -сайте:
http: // java.солнце.com/products/j2se/1.4.1/совместимость.HTML
Как часть обновления системных классов до J2SE 1.4.1, OracleJVM поддерживает безголов. Безголовный AWT разрешает вычисления AWT, которые не полагаются на нативные устройства дисплея и входных устройств платформы, но вместо этого не дают попытки получить доступ к этим собственным ресурсам. Методы, которые пытаются отобразить графический пользовательский интерфейс или прочитать с клавиатуры или ввода мыши вместо этого бросайте новое исключение времени выполнения Java.ав.HeadlessException. Точно так же OracleJVM Deallows пытается воспроизводить или записывать звук, используя нативные звуковые устройства сервера, но все же позволяет приложениям читать, записывать и манипулировать поддерживаемыми звуковыми файлами. Для получения дополнительной информации см. «Пользовательские интерфейсы на сервере» .
Новая модель памяти для выделенных сеансов режима
В базе данных Oracle у OracleJVM новая модель памяти для сеансов, которые подключаются к базе данных через выделенный сервер. Поскольку сеанс, использующий выделенный сервер. Это означает, что некоторые из объектов и ресурсов, которые раньше были восстановлены в конце каждого вызова, теперь могут жить по звонкам. В частности, ресурсы, характерные для конкретной операционной системы, такие как потоки и открытые файлы, теперь больше не очищаются в конце каждого вызова базы данных.
Для сеансов, которые используют общие серверы, ограничения между вызовами, применяемыми в предыдущих выпусках, все еще присутствуют. Причина в том, что сеанс, который использует общий сервер, не гарантированно подключается к тому же процессу в последующем вызове базы данных, и, следовательно, память и объекты, специфичные для сеанса, и объекты, которые необходимы для вызовов, сохраняются в системной глобальной области. Это означает, что ресурсы для конкретных процессов, такие как потоки, открытые файлы и розетки, должны быть очищены в конце каждого вызова и, следовательно, не будут доступны для следующего вызова. Для получения более подробной информации о поведении OracleJVM при использовании общих серверов см. «Специальные соображения для общих серверов» .
Вызовы веб -сервисов базы данных
В базе данных Oracle вы можете загрузить клиент -стек веб -служб в OracleJVM, чтобы поддержать вызовы на внешние веб -сервисы из Java, а также от PL/SQL. Вы можете использовать инструмент JPublisher для генерации статических клиентских прокси-прокси, а также спецификации вызова PL/SQL на этих прокси, которые загружаются в OracleJVM, чтобы обеспечить доступ к веб-службам из Java, PL/SQL и SQL Code.
Родной интерфейс Java
В базе данных Oracle вы теперь можете вызвать публичные статические методы классов Java в OracleJVM непосредственно от клиентов Java, не определяя спецификации вызова PL/SQL и не вызывая их через JDBC. Вместо этого вы можете использовать утилиту JPublisher для создания класса клиента-прокси с той же подписью, что и класс Java на стороне сервера. После того, как вы создали экземпляр клиента-прокси-подключения с помощью соединения JDBC, вы можете напрямую вызвать прокси-методы.
На рисунке 1-1 демонстрируется API API на стороне клиента для прямого вызова статических методов Java на стороне сервера. Jpublisher прозрачно заботится о генерации заглушек.
Рисунок 1-1 Нативный интерфейс Java
Например, чтобы вызвать следующий метод на сервере
публичная строка Oracle.SQLJ.Проверка.Jdbcversion.нанизывать();
jpub -java = oracle.SQLJ.Проверка.Jdbcversion
EJB вызов
В определенных корпоративных приложениях становится важным для доступа. База данных Oracle предоставляет средства для доступа к дистанционно развернутым EJBS через RMI.
Рисунок 1-2 EJB вызов
Обзор Java
Java стала объектно-ориентированным языком программирования по выбору. Он включает в себя следующие концепции:
- Виртуальная машина Java (JVM), которая обеспечивает фундаментальную основу для независимости платформы
- Автоматизированные методы управления хранением, наиболее заметными из которых является сборка мусора
- Языковой синтаксис, который заимствует из C и обеспечивает сильное печатание
Результатом является язык, ориентированный на объект и эффективен для программ на уровне приложений.
Java и объектно-ориентированная терминология программирования
Этот раздел охватывает некоторую основную терминологию разработки приложений Java в среде базы данных Oracle. Термины должны быть знакомы опытным программистам Java. Подробное обсуждение объектно-ориентированного программирования или языка Java выходит за рамки этой книги. Многие тексты, в дополнение к полной языковой спецификации, доступны в вашем книжном магазине и в Интернете. См. «Предлагаемое чтение» в предисловии для указателей на справочные материалы и места, где можно найти информацию, связанную с Java в Интернете.
Классы
Все объектно-ориентированные языки программирования поддерживают концепцию класса. Как и в определении таблицы, класс предоставляет шаблон для объектов, которые имеют общие характеристики. Каждый класс может содержать следующее:
- Атрибуты-статические переменные или экземпляры, которыми обладает каждый объект конкретного класса.
- Методы-вы можете вызвать методы, определяемые классом или унаследованы любыми классами, протянутыми от класса.
Когда вы создаете объект из класса, вы создаете экземпляр этого класса. Экземпляр содержит поля объекта, которые известны как его данные или состояние. На рисунке 1-3 показан пример класса сотрудника, определенный с двумя атрибутами: фамилия (lastname) и идентификатор сотрудников (ID).
Рисунок 1-3 классы и экземпляры
Когда вы создаете экземпляр, атрибуты хранят индивидуальную и частную информацию, относящуюся только к сотруднику. То есть информация, содержащаяся в экземпляре сотрудника, известна только для этого единственного сотрудника. На примере на рисунке 1-3 показаны два экземпляра сотрудника-Смит и Джонс. Каждый экземпляр содержит информацию, относящуюся к отдельному сотруднику.
Атрибуты
Атрибуты в экземпляре известны как поля. Поля экземпляра аналогичны полям реляционной строки таблицы. Класс определяет поля, а также тип каждого поля. Вы можете объявить поля в Java статичными, государственными, частными, защищенными или по умолчанию.
- Общедоступные, частные, защищенные или поля по умолчанию создаются в каждом экземпляре.
- Статические поля похожи на глобальные переменные в том смысле, что информация доступна для всех экземпляров класса сотрудников.
Языковая спецификация определяет правила видимости данных для всех областей. Правила видимости определяют при каких обстоятельствах вы можете получить доступ к данным в этих областях.
Методы
Класс также определяет методы, которые вы можете вызвать на экземпляре этого класса. Методы написаны на Java и определяют поведение объекта. Это объединение состояния и поведения является сущностью инкапсуляции, которая является особенностью всех объектно-ориентированных языков программирования. Если вы определите класс сотрудников, заявив, что идентификатор каждого сотрудника является частным полем, другие объекты могут получить доступ к этому частному полю, только если метод возвращает поле. В этом примере объект может получить идентификатор сотрудника, вызывая сотрудника.Метод getId ().
Кроме того, с инкапсуляцией вы можете заявить, что сотрудник.Метод getId () является частным, или вы можете не писать сотрудника.Метод getId (). Инкапсуляция помогает вам писать программы, которые можно использовать и не неправильно используется. Инкапсуляция открывает только те особенности объекта, которые объявляются публичными; Все остальные области и методы являются частными. Частные поля и методы могут использоваться для внутренней обработки объектов.
Классовая иерархия
Java определяет классы в большой иерархии классов. На вершине иерархии есть класс объектов. Все классы в Java наследуют от класса объектов на каком -то уровне, когда вы поднимаетесь по цепочке наследования суперклассов. Когда мы говорим, что класс B наследует от класса A, каждый экземпляр класса B содержит все поля, определенные в классе B, а также все поля, определенные в классе A. Например, на рисунке 1-4 класс, работающий на полный рабочий день. Кроме того, класс Fulltime Officeee добавляет еще одно поле, бонус, который содержится только в рамках FulltimeEmployee.
Вы можете вызвать любой метод на экземпляре класса B, который был определен в классе A или B. В примере нашего сотрудника, экземпляр FulltimeEmployee может вызывать методы, определенные только в его собственном классе, или методы, определенные в классе работника.
Рисунок 1-4 Иерархия класса
Экземпляры класса B заменяются на экземпляры класса A, что делает наследование еще одной мощной конструкцией объектно-ориентированных языков для улучшения повторного использования кода. Вы можете создать новые классы, которые определяют поведение и указать, где это имеет смысл в иерархии, но использует ранее существовавшие функциональные возможности в библиотеках классов.
Интерфейсы
Java поддерживает только одиночное наследство; то есть в каждом классе есть один и только один класс, от которого он наследует. Если вы должны унаследовать из более чем одного источника, Java обеспечивает эквивалент множественного наследования, без осложнений и путаницы, которые обычно сопровождают его через интерфейсы. Интерфейсы похожи на классы; Однако интерфейсы определяют подписи метода, а не реализации. Методы реализованы в классах, объявленных для реализации интерфейса. Множественное наследство происходит, когда один класс одновременно поддерживает многие интерфейсы.
Полиморфизм
Предположим, что в нашем примере сотрудника, что различные типы сотрудников должны быть в состоянии ответить своей компенсацией на сегодняшний день. Компенсация вычисляется по -разному для разных видов сотрудников.
- Постоянные работники полного времени имеют право на бонус
- Нестандартные работники получают сверхурочную оплату
В традиционных процедурных языках вы напишите длинный оператор Switch с различными возможными случаями.
Переключение: (сотрудник.Тип) Дело: сотрудники возврата сотрудников.зарплата; Случай: работник возврата в полный рабочий день.зарплата + сотрудник.Банстодат .
Если вы добавите новый сотрудник, вы должны обновить оператор Switch. Если вы изменяете структуру данных, вы должны изменить все операторы коммутатора, которые используют ее. На объектно-ориентированном языке, таком как Java, вы внедряете метод, компенсация Todate () для каждого подкласса класса сотрудников, который требует какого-либо особого обращения, кроме того, что уже определено в классе сотрудников. Например, вы можете реализовать метод компенсации todate () nonexptemplemployee, следующим образом:
Private Float CommendationTodate ()
Вы реализуете метод полномочий -работников следующим образом:
Private Float CommendationTodate ()
Распространенное использование имени метода компенсация todate () позволяет вам вызывать идентичный метод на разных классах и получать разные результаты, не зная, какой тип сотрудников, которого вы используете, используете. Вам не нужно писать специальный метод для обработки работников с полным времени и неполных рабочих мест. Эта способность различных объектов реагировать на идентичное сообщение по -разному известна как полиморфизм.
Кроме того, вы можете создать совершенно новый класс, который не наследует от сотрудника в All-контролирует-и внедрить в него метод компенсации (). Программа, которая рассчитывает общую заработную плату на сегодняшний день, будет перечислять всех людей на заработной плате, независимо от того, были ли они полный рабочий день, неполный рабочий день или подрядчики, и добавили значения, возвращаемые из метода компенсации () на каждом. Вы можете безопасно внести изменения в отдельные методы компенсации () () со знанием, что вызывающие абоненты методов будут работать правильно. Например, вы можете безопасно добавить новые поля в существующие классы.
Виртуальная машина Java (JVM)
Как и в случае с другими высокоуровневыми компьютерными языками, ваш источник Java компилируется для инструкций по машине низкого уровня. В Java эти инструкции известны как байткоды (потому что их размер равномерно один байт хранения). Большинство других языков, такие как C-Compile к машине инструкции, такие как инструкции, специфичные для процессора Intel или HP. Ваш источник Java компилируется стандартному, независимому от платформы набора байткодов, который взаимодействует с виртуальной машиной Java (JVM). JVM – это отдельная программа, которая оптимизирована для конкретной платформы, на которой вы выполняете код Java. Рисунок 1-5 показывает, как Java может поддерживать независимость платформы. Ваш источник Java составлен в байткоды, которые независимы от платформы. Каждая платформа установила JVM, специфичный для его операционной системы. Java Bytecodes из вашего источника интерпретируется через JVM в соответствующие зависимые от платформы действия.
Рисунок 1-5 Структура компонентов Java
Когда вы разрабатываете программу Java, вы используете предопределенные библиотеки основных классов, написанные на Java Language. Библиотеки класса Java Core Class логически разделены на пакеты, которые обеспечивают обычно используемые функциональность, такие как базовая языковая поддержка (Java.lang), вход/вывод (Java.IO) и доступ к сети (Java.сеть). Вместе библиотеки JVM и Core Class предоставляют платформу, на которой программисты Java могут развиваться с уверенностью, что любая аппаратная и операционная система, которая поддерживает Java, выполнит их программу. Эта концепция – это то, что движет идеей «написать один раз, забежать в любом месте».
Рисунок 1-6 показывает, как приложения Oracle Java расположены на вершине библиотеки класса Java Core, которые, в свою очередь, сидят на вершине JVM. Поскольку система поддержки Oracle Java находится в базе данных, JVM взаимодействует с библиотеками базы данных Oracle, а не непосредственно с операционной системой.
Рисунок 1-6 база данных Oracle Java Структура компонентов
Sun Microsystems предоставляют общедоступные спецификации как для Java Language, так и для JVM. Спецификация языка Java (JLS) определяет такие вещи, как синтаксис и семантика; Спецификация JVM определяет необходимое поведение низкого уровня для «машины», которая выполняет байткоды. Кроме того, Sun Microsystems предоставляет набор тестов на совместимость для исполнителей JVM, чтобы определить, выполнили ли они спецификации. Этот набор тестов известен как набор для совместимости Java (JCK). Реализация OracleJVM полностью соответствует JCK. Часть общей стратегии Java заключается в том, что открыто указанный стандарт вместе с простым способом проверки соответствия этим стандарту позволяет поставщикам предлагать единую поддержку Java на всех платформах.
Ключевые особенности Java Language
Язык Java имеет ключевые функции, которые делают его идеальным для разработки серверных приложений. Эти функции включают в себя:
- Простота-Java-это более простой язык, чем большинство других, используемых в приложениях серверов из-за его последовательного обеспечения соблюдения объектной модели. Большой стандартный набор библиотек классов приносит мощные инструменты для разработчиков Java на всех платформах.
- Портативность-Ява портативна на всех платформах. Можно написать код, зависящий от платформы, в Java, но также просто писать программы, которые плавно перемещаются по машинах. Приложения Oracle Server, которые не поддерживают графические пользовательские интерфейсы непосредственно на платформе, которая их размещает, также имеет тенденцию избегать нескольких проблем с портативностью платформы, которые есть у Java.
- Автоматическое управление хранением-виртуальная машина Java автоматически выполняет все распределение памяти и сделки во время выполнения программы. Java программисты не могут не выделять и не свободную память явно. Вместо этого они зависят от JVM для выполнения этих операций бухгалтерского учета, распределяя память при создании новых объектов и сделка с памятью, когда объекты больше не ссылаются. Последняя операция известна как сбор мусора.
- Сильный набор печати-потому что вы используете переменную Java, вы должны объявить класс объекта, который он будет удерживать. Сильная набор Java позволяет предоставить разумное и безопасное решение для межланговых вызовов между приложениями Java и PL/SQL, а также для интеграции вызовов Java и SQL в одном и том же приложении.
- Нет указателей-хотя Java сохраняет большую часть аромата C в своем синтаксисе, она не поддерживает прямые указатели или манипуляции с указателями. Вы передаете все параметры, за исключением примитивных типов, посредством ссылки (то есть идентификация объекта сохраняется), а не по значению. Java не обеспечивает низкого уровня C, прямой доступ к указателям, который устраняет повреждение памяти и утечки.
- Обработка исключений-Java исключения являются объектами. Java требует, чтобы разработчики заявляли, какие исключения могут быть брошены методами в любом конкретном классе.
- Гибкое пространство имен-Ява определяет классы и удерживает их в иерархической структуре, которая отражает пространство доменных имен Интернета. Вы можете распространять Java -приложения и избегать столкновений имен. Расширения Java, такие как интерфейс именования Java и интерфейс каталогов (JNDI), предоставляют федеральную основу для нескольких имен служб. Подход пространства имен Java достаточно гибкий для Oracle, чтобы включить концепцию схемы для разрешения имен классов, полностью соблюдая языковую спецификацию.
- Безопасность-дизайн байткодов Java и JVM позволяет встроить встроенные механизмы, чтобы убедиться, что бинарный код Java не подделан. База данных Oracle устанавливается с помощью экземпляра SecurityManager, который, в сочетании с безопасностью базы данных Oracle, определяет, кто может вызвать любые методы Java.
- Стандарты подключения к реляционным базам данных-JDBC Включите код Java для доступа и манипулирования жителями данных в реляционных базах данных. Oracle предоставляет драйверы, которые разрешают независимый от поставщика портативный код Java для доступа к реляционной базе данных.
Зачем использовать Java в базе данных Oracle?
Единственная причина, по которой вам разрешено писать и загружать приложения Java в базе данных, заключается в том, что это безопасный язык. Java была разработана, чтобы предотвратить любому -либо вмешиваться в операционную систему, что код Java находится в. Некоторые языки, такие как C, могут ввести проблемы безопасности в базе данных; Java, из -за его дизайна, является безопасным языком, чтобы разрешить в рамках базы данных.
Хотя Java Language дает разработчикам много преимуществ, предоставление реализации JVM, которая масштабируется в реализации JVM, является проблемой. В этом разделе обсуждаются некоторые из этих проблем.
- Java и RDBMS: надежная комбинация
- Многопоточный
- Автоматизированное управление хранением с сборкой мусора
- След
- Производительность
- Динамическая загрузка класса
Java и RDBMS: надежная комбинация
RDBMS Oracle предоставляет Java-приложения с динамическим двигателем обработки данных, который поддерживает сложные запросы и различные представления одних и тех же данных. Все запросы клиентов собираются в качестве запросов данных для немедленной обработки, а результаты запроса генерируются на лету.
Несколько функций делают Java идеальным для программирования сервера. Java позволяет собирать приложения, используя готовые программные компоненты (Javabeans). Его тип безопасности и автоматическое управление памятью позволяют обеспечить жесткую интеграцию с RDBMS. Кроме того, Java поддерживает прозрачное распределение компонентов приложения по сети.
Таким образом, Java и RDBMS поддерживают быструю сборку на основе компонентных сетевых приложений, которые могут развиваться изящно по мере изменения потребностей бизнеса. Кроме того, вы можете перемещать приложения и хранилище данных с рабочего стола и на интеллектуальные сети и сетевые серверы. Что еще более важно, вы можете получить доступ к этим приложениям и хранилищам данных с любого клиентского устройства.
На рисунке 1-7 показана традиционная двухуровневая конфигурация клиента/сервера, в которой клиенты вызывают Java, хранящиеся на Java, так же, как они вызывают хранимых процедур PL/SQL. (PL/SQL является расширенным 4GL, тесно интегрированным с базой данных Oracle.) На рисунке также показано, как диспетчер подключений Oracle Net Services может направлять множество сетевых подключений в одно соединение базы данных. Это позволяет RDBMS поддерживать большое количество одновременных пользователей.
Рисунок 1-7 Конфигурация двухуровневого клиента/сервера/сервера
Многопоточный
Поддержка многопоточной чтения часто называется одной из ключевых особенностей масштабируемости языка Java. Конечно, Java Language и классовые библиотеки упрощают писать многопоточные приложения на Java, чем многие другие языки, но на любом языке все еще является сложной задачей для написания надежного, масштабируемого многопоточного кода.
В качестве сервера базы данных база данных Oracle эффективно планируют работу для тысяч пользователей. OracleJVM использует средства сервера RDBMS для одновременного планирования выполнения Java для тысяч пользователей. Хотя база данных Oracle поддерживает потоки уровня языка Java, требуемые JLS и JCK, использование потоков в рамках базы данных не увеличит вашу масштабируемость. Использование встроенной масштабируемости базы данных устраняет необходимость написания многопоточных серверов Java. Вы должны использовать средства базы данных для планирования пользователей, написав однопоточные приложения Java. База данных позаботится о планировании между каждым приложением; Таким образом, вы достигаете масштабируемости без необходимости управлять потоками. Вы все еще можете написать многопоточные приложения Java, но несколько потоков Java не повысят производительность вашего сервера.
Одним из сложных многопоточных чтений на Java является взаимодействие потоков и автоматизированного управления хранением, или сборы мусора. Коллекционер мусора, выполняемый в общей JVM.
- Модель базы данных без ORACLE-однопользовательские карты в одном потоке уровня языка Java; Один и тот же отдельный коллектор мусора управляет всеми мусором от всех пользователей. Различные методы, как правило, связаны с распределением и сбором объектов различных жизней и размеров. Результат в сильно многопоточном приложении, в лучшем случае, зависит от поддержки операционной системы для собственных потоков, что может быть ненадежным и ограниченным в масштабируемости. Высокий уровень масштабируемости для таких реализаций не был убедительно продемонстрирован.
- Oraclejvm Model-даже когда тысячи пользователей подключаются к серверу и выполняют один и тот же код Java, каждый пользователь испытывает его так, как будто он выполняет свой собственный код Java на своей собственной виртуальной машине Java. Ответственность OracleJVM состоит в том, чтобы использовать процессы и потоки операционной системы, используя масштабируемый подход Oracle RDBMS. В результате этого подхода коллекционер мусора JVM более надежна и эффективен, потому что он никогда не собирает мусор от более чем одного пользователя в любое время. Обратитесь к «Поток в базе данных Oracle» для получения дополнительной информации об реализации модели потока в OracleJVM.
Автоматизированное управление хранением с сборкой мусора
Сборник мусора является основной особенностью автоматизированного управления хранением Java, что устраняет необходимость явного распределения и свободной памяти. Следовательно, это устраняет большой источник утечек памяти, который обычно чума C и C ++ программы. Существует цена на такую выгоду: сбор мусора способствует накладной информации о скорости выполнения программы и следа. Хотя многие документы были написаны квалификацией и количественной оценкой компромисса, общая стоимость является разумной, учитывая альтернативы.
Сбор мусора накладывает проблему для разработчика JVM, стремящегося поставить высоко масштабируемую и быструю платформу Java. OracleJVM решает эти проблемы следующими способами:
- OracleJVM использует средства планирования базы данных Oracle, которые могут эффективно управлять несколькими пользователями.
- Сбор мусора выполняется последовательно для нескольких пользователей, потому что сборник мусора сосредоточен на одном пользователе в одном сеансе. OracleJVM пользуется огромным преимуществом, потому что бремя и сложность задания менеджера памяти не увеличиваются, поскольку число пользователей увеличивается. Диспетчер памяти выполняет распределение и сбор объектов в течение одного сеанса, который обычно переводится на деятельность одного пользователя.
- OracleJVM использует различные методы сбора мусора в зависимости от типа используемой памяти. Эти методы обеспечивают высокую эффективность и низкие накладные расходы.
След
Следует за этим факторов:
- Размер самой программы-как много классов и методов и сколько кода они содержат.
- Сложность программы-объем основных классовых библиотек, которые OracleJVM использует в качестве программы, в отличие от самой программы.
- Количество состояний, которое использует JVM-как многие объекты, которые JVM выделяет, насколько они велики, и сколько нужно сохранить по звонкам.
- Способность коллекционера мусора и менеджера памяти справиться с требованиями выполнения программы, которая часто не определена нетерминация. Скорость, с которой объекты распределяются, и на то, как они удерживаются другими объектами, влияет на важность этого фактора.
С точки зрения масштабируемости, ключом к поддержке многих параллельных клиентов является минимальный сессия для каждого пользователя. OracleJVM сохраняет сессию для каждого пользователя с минимумом, размещая все данные только для чтения для пользователей, таких как Java Bytecodes, в общей памяти. Соответствующие алгоритмы сбора мусора применяются против воспоминаний о вызовах и сеансе, чтобы сохранить небольшой след для сеанса пользователя. OracleJVM использует три типа алгоритмов сбора мусора для поддержания памяти сеанса пользователя:
- Поиск поколений для недолговечных предметов
- Mark и Lazy Sweep Collection для объектов, которые существуют для жизни одного вызова
- Копирование коллекционера для долгоживущих объектов-объектов, которые живут по звонкам в течение сеанса
Производительность
Производительность OracleJVM повышается за счет реализации собственного компилятора.
Как местные компиляторы повышают производительность
Java выполняет независимые от платформы Bytecodes поверх JVM, который, в свою очередь, взаимодействует с конкретной аппаратной платформой. Каждый раз, когда вы добавляете уровни в программном обеспечении, ваша производительность деградирована. Поскольку Java требует прохождения посредника для интерпретации независимых от платформы Bytecodes, для приложений Java существует степень неэффективности, которая не существует в зависимости от платформы, таких как C. Чтобы решить эту проблему, несколько поставщиков JVM создают местные компиляторы. Нативные компиляторы переводят java bytecodes в платформу-зависимый нативный код, который устраняет шаг интерпретатора и повышает производительность.
Следующее описывает два метода для нативного компиляции:
Just In Time (JIT) компиляция
Компиляторы JIT быстро скомпилируют байткоды Java с нативным (специфичным для платформы) машинный код во время выполнения. Это не производит исполняемый файл, который будет выполнен на платформе; Вместо этого он предоставляет код, зависящий от платформы от байткодов Java, который выполняется непосредственно после его перевода. Это следует использовать для кода Java, который часто работает, который будет выполняться на скорости ближе к таким языкам, как C.
Компиляция переводит байткоды Java в код C-независимого от платформы перед временем выполнения. Затем стандартный компилятор C собирает код C в исполняемый файл для целевой платформы. Этот подход более подходит для приложений Java, которые изменены нечасто. Этот подход использует преимущества зрелой и эффективной технологии компиляции для конкретной платформы, обнаруженной в современных компиляторах C.
Oracle Database использует компиляцию заранее для предоставления своих основных библиотек классов Java: код JDBC в изначально скомпилированной форме. Это применимо во всех платформах, которые поддерживает Oracle, тогда как подход JIT требует, чтобы код для каждой платформы был записан и поддерживается низкоуровневым, зависимым от процессора кода. Вы можете использовать эту технологию нативного компиляции с собственным кодом Java.
Как показано на рисунке 1-8, изначально скомпилированный код выполняется в десять раз быстрее, чем интерпретированный код. Итак, чем больше нативного кода использует ваша программа, тем быстрее выполняется.
Рисунок 1-8 Интерпретатор против акселератора
Обратитесь к «Назнаноженному коду» для получения дополнительной информации.
Динамическая загрузка класса
Еще одна сильная особенность Java – это динамическая загрузка класса. Загрузчик класса загружает классы с диска (и помещает их в специфичные для JVM структуры памяти, необходимые для интерпретации) только так, как они используются во время выполнения программы. Загрузчик класса обнаруживает классы в трассе и загружает их во время выполнения программы. Этот подход, который хорошо работает для апплетов, создает следующие проблемы в среде сервера:
Операция по загрузке класса устанавливает серьезный штраф за первое выполнение. Простая программа может привести к тому, что OracleJVM загрузит множество основных классов для удовлетворения его потребностей. Программист не может легко предсказать или определить количество загруженных классов.
OracleJVM загружает классы динамически, как и в случае с любой другой виртуальной машиной Java. Тот же одноразовый класс нагрузки встречается. Однако, поскольку классы загружаются в общую память, другие пользователи этих классов не приведут к загрузке классов-они просто будут использовать те же предварительно загруженные классы.
Преимущество динамической загрузки класса заключается в том, что она поддерживает обновление программы. Например, вы будете обновлять классы на сервере, и клиенты, которые загружают программу и загружают ее динамически, видят обновление, когда они следуют. Серверные программы, как правило, подчеркивают надежность. Как разработчик, вы должны знать, что каждый клиент выполняет конкретную конфигурацию программы. Вы не хотите, чтобы клиенты непреднамеренно загружали некоторые классы, которые вы не намеревали их загружать.
База данных Oracle отделяет работу загрузки и разрешения от операции загрузки класса во время выполнения. Вы загружаете код Java, который вы разработали на сервер, используя утилиту LoadJava. Вместо использования ClassPath вы указываете резольвер во время установки. Резольвер аналогичен ClassPath, но позволяет указать схемы, в которых проживают классы. Это отделение разрешения от загрузки класса означает, что вы всегда знаете, какие пользователи программы выполняют. Обратитесь к главе 11 «Инструменты объектов схемы» для получения подробной информации о Loadjava и Resolvers.
Что отличается с OracleJVM?
В этом разделе обсуждаются некоторые важные различия между OracleJVM и типичным клиентским JVMS.
Метод main ()
Клиентские приложения Java объявляют один метод верхнего уровня (main ()), который определяет профиль приложения. Как и в зависимости от апплетов, серверные приложения не имеют такого «внутреннего цикла.”Вместо этого они управляются логически независимыми клиентами.
Каждый клиент начинает сеанс, вызывает логические модули на стороне сервера через точки входа верхнего уровня и в конечном итоге заканчивает сеанс. Серверная среда скрывает управление сеансами, сетями и другими общими ресурсами из размещенных программ Java.
Графический интерфейс
Сервер не может предоставить графические интерфейсы, но он может предоставить логику, которая их управляет. OracleJVM поддерживает только безгол режима абстрактного инструментария окна (AWT). Все классы AWT Java доступны в среде сервера, и ваши программы могут использовать функциональность AWT, если они не пытаются реализовать графический интерфейс на сервере. Для получения дополнительной информации см. «Пользовательские интерфейсы на сервере» .
IDE
OracleJVM ориентирован на развертывание приложений Java, а не разработку. Вы можете написать и провести предложение приложений в своей любимой IDE, например Oracle JDeveloper, затем развернуть их для выполнения в RDBMS.
См. «Инструменты разработки» для получения дополнительной информации.
Бинарная совместимость Java позволяет вам работать в любой IDE, а затем загружать файлы класса Java на сервер. Вам не нужно перемещать исходные файлы Java в базу данных. Вместо этого вы можете использовать мощные IDE на стороне клиента для обслуживания приложений Java, которые развернуты на сервере.
Основные компоненты OracleJVM
В этом разделе кратко описываются основные компоненты OracleJVM и некоторые объекты, которые они предоставляют.
База данных Oracle Java Virtual Machine (JVM)-это полная среда Java 2, соответствующая Java Execution. Он работает в одном и том же пространстве и адресном пространстве процесса, что и ядро RDBM. Этот дизайн оптимизирует использование памяти и увеличивает пропускную способность.
Oraclejvm предоставляет среду выполнения для объектов Java. Он полностью поддерживает структуры данных Java, диспетчеры метода, обработку исключений и потоки на уровне языка. Он также поддерживает все основные библиотеки классов Java, включая Java.Ланг, Ява.io, Java.net, java.математика и ява.утилит. На рисунке 1-9 показаны его основные компоненты.
Рисунок 1-9 Основные компоненты OracleJVM
OracleJVM внедряет стандартное пространство имен Java в схемы RDBMS. Эта функция позволяет Java -программам получить доступ к объектам Java, хранящиеся в базах данных Oracle и серверах приложений через предприятие.
Кроме того, OracleJVM тесно интегрирован с масштабируемой общей архитектурой памяти RDBMS. Программы Java эффективно используют вызов, сеанс и объекта без вашего вмешательства. Таким образом, вы можете масштабировать бизнес-объекты Java Oraclejvmand Java, даже если у них есть государство с сеансом.
Коллекционер мусора описан в «Автоматизированном управлении хранениями с сбором мусора» . Нативный компилятор обсуждается в «Производительности» . Остальные компоненты описаны в следующих разделах:
Кроме того, следующие разделы дают обзор драйвера JDBC:
Менеджер библиотеки
Для хранения классов Java в базе данных Oracle вы используете командную линию утилиту LoadJava, в которой используются SQL Create Java операторы для выполнения своей работы. При обращении к оператору Create Java менеджер библиотеки загружает источник, класс или ресурсы Java. Вы никогда не получаете доступ к этим объектам схемы Java напрямую; Только OracleJVM их использует.
Компилятор
OracleJVM включает в себя стандартную Java 2 (также известный как JDK 1.2) компилятор Java. При обращении к исходному заявлению Create Java он переводит исходные файлы Java в нейтральные архитектуру, однобальные инструкции, известные как байткоды. Каждый байт -код состоит из оплота, за которым следует его операнды. Полученные файлы класса Java, которые полностью соответствуют стандарту Java, отправляются интерпретатору во время выполнения.
Устный переводчик
Чтобы выполнить программы Java, OracleJVM включает в себя стандартную интерпретатор Java 2 Bytecode. Переводчик и ассоциированная система выполнения Java выполняет стандартные файлы класса Java. Система времени выполнения поддерживает собственные методы и вызов/вызов из хост-среды.
Вы также можете собрать свой код для более быстрого выполнения. OracleJVM использует изначально скомпилированные версии основных библиотек классов Java и драйверов JDBC. Для получения дополнительной информации см. «Назначенный код» .
Класс погрузчик
В ответ на запросы из системы времени выполнения, загрузчик класса Java определяет, загружает и инициализирует классы Java, хранящиеся в базе данных. Загрузчик класса считывает класс, затем генерирует структуры данных, необходимые для его выполнения. Необываемые данные и метаданные загружаются в общую память инициализируйте общую память. В результате для каждого сеанса требуется меньше памяти. Загрузчик класса пытается разрешить внешние ссылки при необходимости. Кроме того, он автоматически вызывает компилятор Java, когда файлы класса Java должны быть перекомпилированы (и исходные файлы доступны).
Верификатор
Файлы классов Java полностью переносимы и соответствуют четко определенному формату. Verifier предотвращает непреднамеренное использование «поддельных» файлов класса Java, которые могут изменить поток программ или нарушать ограничения доступа. Oracle Security и Java Security работают с Verifier для защиты ваших приложений и данных.
Серверная сторона JDBC Внутренний драйвер
JDBC-это стандартный набор классов Java, предоставляющий независимый от поставщика доступ к реляционным данным. Указано Sun Microsystems и смоделировано после ODBC (открытая база данных подключение) и x/open SQL CLI (интерфейс уровня вызовов), классы классов JDBC предоставляют стандартные функции, такие как одновременные соединения с несколькими базами данных, управление транзакциями, простые запросы, вызовы к сохраненным процедурам и доступ к данным длинных столбцов, транзакции, просты.
Используя низкоуровневые точки входа, специально настроенный драйвер JDBC работает непосредственно внутри RDBM, что обеспечивает самый быстрый доступ к данным Oracle из хранимых процедур Java. Внутренний драйвер JDBC на стороне сервера полностью соответствует спецификации Sun Microsystems JDBC. Плотно интегрированные с RDBMS, он поддерживает специфичные для Oracle типы данных, наборы символов глобализации и хранимые процедуры. Кроме того, API-интерфейсы JDBC на стороне клиента и на сервере одинаковы, что облегчает разделение приложений.
Стратегия приложения Oracle’s Java
Одной из привлекательности Java является его повсеместность и растущее число программистов, способных разработать приложения, используя его. Oracle предоставляет разработчикам предприятия предприятия разработчиками приложений с сквозным Java для создания, развертывания и управления приложениями Java. Общее решение состоит из программных интерфейсов на стороне клиента и сервера, инструментов для поддержки разработки Java и виртуальной машины Java, интегрированной с сервером баз данных Oracle. Все эти продукты на 100 процентов совместимы со стандартами Java.
Среда программирования Java
В дополнение к OracleJVM, среда программирования Java состоит из:
- Java сохраняла процедуры как эквивалент Java и компаньон для PL/SQL. Хранилированные процедуры Java тесно интегрированы с PL/SQL. Вы можете вызвать хранимую процедуру Java из пакета PL/SQL; Вы можете вызвать процедуры PL/SQL из хранимой процедуры Java.
- Данные SQL можно получить через JDBC.
- Инструменты и сценарии, используемые для оказания помощи в разработке, загрузке класса и управлении классом.
Чтобы помочь вам решить, какой Java API использовать, изучите следующую таблицу:
Чтобы получить процедуру Java, вызванную SQL, например, триггер.
Java сохраняют процедуры
Чтобы вызвать динамические, сложные операторы SQL из объекта Java.
Java сохраняют процедуры
Если вы программист PL/SQL, изучающий Java, вас заинтересованы в хранимых процедурах Java. Хранильная процедура Java – это программа, которую вы пишете в Java для выполнения на сервере, точно так же как хранящаяся процедура PL/SQL. Вы вызываете его напрямую с помощью таких продуктов, как SQL*Plus, или косвенно с триггером. Вы можете получить доступ к нему от любого клиента Oracle Net-AoCi, Pro* или JDBC. Глава 5 «Разработка хранимых процедур Java» объясняет, как писать хранимые процедуры в Java, как получить доступ к ним из PL/SQL, и как получить доступ к функциональности PL/SQL из Java.
Кроме того, вы можете использовать Java для разработки мощных программ независимо от PL/SQL. База данных Oracle предоставляет полностью совместимую реализацию языка программирования Java и JVM.
Интеграция PL/SQL и функциональность Oracle RDBMS
Вы можете вызвать существующие программы PL/SQL из Java и вызвать программы Java от PL/SQL. Это решение защищает и использует ваши существующие инвестиции, открывая преимущества и возможности интернет-вычислений на основе Java.
Oracle предлагает два разных интерфейса прикладного программирования (API) для разработчиков Java для доступа к данным SQL-JDBC. Оба API доступны на клиенте и сервере, поэтому вы можете развернуть один и тот же код в любом месте.
JDBC драйверы
JDBC – это протокол доступа к базе данных, который позволяет подключаться к базе данных, а затем подготовить и выполнять операторы SQL по базе данных. Core Java Class Libraries предоставляют только один API JDBC. JDBC разработан, однако, чтобы позволить поставщикам снабжать драйверы, которые предлагают необходимую специализацию для конкретной базы данных. Oracle доставляет следующие три различных драйвера JDBC.
JDBC Thin Driver
Вы можете использовать тонкий драйвер JDBC для написания 100% чистых приложений Java и апплетов, которые получают доступ к данным Oracle SQL. Тонкий драйвер JDBC особенно подходит для приложений и апплетов на основе веб-браузеров, потому что вы можете динамически загружать его со веб-страницы, как и любой другой апплет Java.
JDBC Oracle Call Driver
JDBC Oracle Call Interface (OCI) Драйвер доступа к Oracle-специфическому нативному коду (то есть не Java) библиотеки на клиентском или среднем уровне, обеспечивая некоторое повышение производительности по сравнению с тонким драйвером JDBC, за счет значительно большего размера и установки на стороне клиента.
Внутренний драйвер на стороне сервера JDBC
Oracle Database использует внутренний драйвер на стороне сервера, когда Java Code выполняется на сервере. Это позволяет Java -приложениям, выполняемым в виртуальной машине Java сервера, доступ к локально определенным данным (то есть на той же машине и в том же процессе) с JDBC. Он обеспечивает дальнейшее повышение производительности из -за своей способности непосредственно использовать базовые библиотеки RDBMS Oracle, без накладных расходов промежуточного сетевого соединения между вашим кодом Java и Data SQL. Поддерживая тот же интерфейс Java-SQL на сервере, база данных Oracle не требует от переработки кода при его развертывании.
Jpublisher
JPublisher предоставляет простой и удобный инструмент для создания Java -программ, которые получают доступ к существующим таблицам реляционной базы данных Oracle. См. Руководство пользователя Oracle Batabase Jpublisher для получения дополнительной информации.
Инструменты разработки
Введение Java на сервер базы данных Oracle позволяет использовать несколько интегрированных средств разработки Java. Приверженность базы данных Oracle к Java совместимость и открытые интернет -стандарты и протоколы гарантируют, что ваши 100% чистые программы Java будут работать, когда вы разместите их в базе данных Oracle. Oracle предоставляет много инструментов или утилит, все написанные на Java, которые облегчают разработку и развертывание приложений Java Server. У JDeveloper от Oracle есть много функций, разработанных специально для облегчения развертывания хранимых процедур Java и корпоративных Javabeans. Вы можете скачать JDeveloper на следующем сайте: http: // otn.оракул.com/software/products/jdev/content.HTML.
Desupport of J2ee Technologies в базе данных Oracle
С введением контейнеров сервера приложений Oracle для J2EE (OC4J)-нового, более легкого, более легкого, более быстрого и сертифицированного контейнера J2EE-Oracle начал Desupport of Java 2 Enterprise Edition (J2EE) и Corba Stacks из базы данных, начало с Oracle9я Выпуск базы данных 2. Тем не менее, вставленная база данных Java VM (ORACLEJVM) все еще присутствует и будет по-прежнему улучшаться, чтобы предложить функции Java 2 Standard Edition (J2SE), хранимые процедуры Java и JDBC в базе данных.
На Оракул9я Выпуск 2 базы данных (9.2.0), Oracle больше не поддерживает следующие технологии в базе данных:
- стек J2EE, состоящий из:
- Контейнер для корпоративных бобов (EJB)
- Javaserver страниц (JSP) контейнер
- Oracle9я Двигатель сервлета (OSE)
Клиенты больше не смогут развернуть объекты сервлетов, JSP, EJBS и Corba в базах данных Oracle. Oracle9я Выпуск 1 базы данных (9.0.1) будет последним выпуском базы данных, чтобы поддержать стек J2EE и CORBA. Oracle поощряет клиентов мигрировать существующие приложения J2EE, работающие в базе данных в OC4J сейчас.
Джава
Oracle Java – это язык программирования № 1. Это снижает затраты, сокращает сроки разработки, приводит к инновациям и улучшает услуги по применению. С миллионами разработчиков, управляющих виртуальными машинами Java более 60 миллиардов Java, Java по -прежнему остается платформой для разработки для предприятий и разработчиков.
Java 20 теперь доступен
Следующий выпуск в шестимесячной каденции, Java 20, улучшает производительность, стабильность и безопасность разработки приложений Java.
Graalvm Enterprise бесплатно на OCI
Создание собственных исполняемых файлов, которые помогают Java -приложениям быстро запускаться, уменьшить использование памяти и сэкономить на хостинговых затратах.
Java Management Service
JMS Advance Features Advance Admincement Administrators получить дополнительную информацию о рабочих нагрузках Java. Анализ использования, уязвимостей и воздействия на обновления криптографической дорожной карты.
День разработчика Java в Oracle Devlive 2023
Смотрите основной доклад на уровне DevLive и узнайте о улучшениях выпуска Java 20 для AppDev, современных языковых инноваций и поддержки фреймворков Java Developer.
Аналитик Java сообщает
Java и искусство управления цифровой трансформацией
Получите представление о том, как использовать Java для поддержки ваших усилий по модернизации и трансформации. Узнайте, как получить максимальную отдачу от открытого исходного коэффициента, облачного урожая и поддержки услуг в этом техническом кратком изложении Omdia.
Java: модернизация разработки для безопасных облачных приложений
Узнайте, как Java помогает организациям ускорить цифровые преобразования, минимизируя уязвимости на сегодняшний день’S потребности приложения.
Верхняя ИТ -безопасность и соблюдение обезболивающих точек при разработке применения
Безопасность остается наиболее важным приоритетом для руководителей ИТ, согласно недавнему отчету 451 исследования. Прочитайте краткое изложение, чтобы узнать самые высокие проблемы безопасности для разработчиков и то, как вы можете достичь своих целей в области ИТ -безопасности и соответствия с помощью Java.
Абердин знание кратко
Узнайте, почему лидеры в разработке приложений используют Java, чтобы более эффективно построить приложения мирового класса, самое высокое качество и самая сильная безопасность.