Установите java ee sdk database server mysql oracle sql or another dbms
Эта статья открывает небольшой цикл, посвященный азам взаимодействия с базами данных (БД) в Java и введению в SQL. Многие программы заняты обработкой и модификацией информации, её поддержкой в актуальном состоянии. Поскольку данные — весьма важная часть логики программ, то под них зачастую выделяют отдельное хранилище. Информация в нём структурирована и подчинена специальным правилам, чтобы обеспечить правильность обработки и хранения. Доступ к данным и их изменение осуществляется с помощью специального языка запросов — SQL (Structured Query Language).
Система управления базами данных — это ПО, которое обеспечивает взаимодействие разных внешних программ с данными и дополнительные службы (журналирование, восстановление, резервное копирование и тому подобное), в том числе посредством SQL. То есть программная прослойка между данными и внешними программами с ними работающими. В этой части ответим на вопросы что такое SQL, что такое SQL сервер и создадим первую программу для взаимодействия с СУБД.
Setting System Properties
Within an RDBMS session you can maintain a set of values that are added to the system properties whenever a Java session is started in the RDBMS session. This set of values remains valid for the duration of the longer tier of Java session state, which is typically the same as the duration the RDBMS session.
There is a set of PL/SQL functions in the DBMS_JAVA package for setting, retrieving, removing and displaying key value pairs in an internal, RDBMS session duration table, where both elements of a pair are strings ( VARCHAR2 ) and there is at most one pair for a given key. These functions are as follows:
This function establishes a value for a system property that is then used for the duration of the current RDBMS session, whenever a Java session is initialized. The first argument is the name of the property and the second is the value to be established for it. The return value for set_property is null unless there is some error. For example, if an attempt is made to set a value for a prescribed property, then an error message is returned.
This function returns any value previously established by set_property. It returns null if there is no such value.
This function removes any value previously established by set_property. The return value is null unless an error occurred, in which case an error message is returned.
This function displays a message of the form name = value for the input name, or for all established property bindings, if name is null. The return value for this function is null on successful completion, otherwise it is an error message. The output is displayed to wherever you have currently directed your Java output.
Before initializing the Java session, the values from this table are added to the set of default system property values already maintained by Oracle JVM. When you run a Java method by using the command-line interface, the values determined by the -D option, if present, override the values set in the table. As soon as you terminate the Java session, the values established by the -D option become obsolete and the keys are set to the original values as present in the table.
© Владимир Пржиялковский,
координатор Евро-Азиатской Группы Пользователей Oracle,
преподаватель УКЦ Interface Ltd.
Содержание
Создание самостоятельных программ на Java
Пример транслирования и выполнения Java-программы
Файл с программой под названием MyJavaAgent.java может иметь следующее содержание:
Транслирование программы (класса):
Запуск программы (класса):
Разбор кода
Uninstalling the Software
Before you uninstall the software, make sure you have stopped all domains and other related processes, including command prompts using the installation directory or its subdirectories, and any applications using Java SE files.
To stop domains, use the asadmin stop-domain command. For more information about this command, see the GlassFish Server Open Source Edition 5.0 Reference Manual.
If orphaned processes remain, identify and terminate the processes as follows:
-
Solaris, Linux, and Mac OS X systems:
Use the ps -ef command and terminate the processes using the kill command.
Use the Task Manager and terminate the processes using the End Task or End Process buttons.
This chapter describes how to install and configure Oracle JVM. It also describes how to enable the Java client. This chapter covers the following topics:
Первая программа
Configuring with Oracle Database Template
Configure Oracle JVM option within the database template. This is the recommended method for Java installation.
The Database Configuration Assistant enables you to create database templates for defining what each database instance installation will contain. Choose Oracle JVM option to have the Java platform installed within your database.
Distributions and Their Components
The following distributions are available and include the components listed:
- Java Platform, Enterprise Edition 8 (Java EE 8) SDK
- GlassFish Server Open Source Edition 5.0
- Your First Cup: An Introduction to the Java EE Platform
- Java EE 8 Tutorial
- Java EE 8 Samples
- Java EE 8 API Documentation
- GlassFish Server Open Source Edition 5.0 Web Profile
- Your First Cup: An Introduction to the Java EE Platform
- Java EE 8 Tutorial
- Java EE 8 Samples
- Java EE 8 API Documentation
Visit the Java EE 8 SDK Downloads page for more information about each distribution.
Next Steps and Resources
The following resources in the Java EE 8 SDK and Java EE 8 Web Profile SDK will help you get started with Java EE 8.
- Your First Cup: An Introduction to the Java EE Platform provides a short tutorial for beginning Java EE programmers that shows how to develop a simple enterprise application from scratch. The sample application consists of four main components: a JAX-RS RESTful web service, an enterprise bean, a Java Persistence API entity, and a web application created with JavaServer Faces Facelets technology.
- The Java EE 8 Tutorial is a guide to developing enterprise applications for GlassFish Server. The tutorial includes working examples and instructions for creating applications with new and updated Java EE 8 technologies, including Java API for WebSocket, Java API for JSON Processing, Batch Applications for the Java Platform, Concurrency Utilities for Java EE, Java Message Service, Java Servlets, JavaServer Faces, RESTful Web Services, Enterprise JavaBeans, Java Persistence API, Contexts and Dependency Injection for Java EE, and more. The tutorial is also available through Update Tool.
- Java EE 8 Samples demonstrate Java EE 8 technologies and help you learn more about them. After installation, Samples are located in the install-dir /glassfish/samples/javaee8 directory. See the index.html file in that location for more information about the samples.
- Java EE 8 API Documentation provides API reference documentation for the packages and related APIs that make up the Java EE 8 platform. This documentation is generated from the source code by the Javadoc tool. After installation, the bundled API documentation can be accessed from install-dir /glassfish/docs/api/index.html .
The following resources will help you get started with GlassFish Server Open Source Edition and make the most of its capabilities.
- Quick Start Guide helps you become familiar with GlassFish Server Open Source Edition and explains how to perform basic tasks such as starting the server, accessing the Administration Console, and deploying a sample application. The guide pertains to both GlassFish Server Open Source Edition and GlassFish Server Open Source Edition Web Profile.
- GlassFish Server Open Source Edition 5.0 Release Notes provide the latest information about GlassFish Server Open Source Edition, including what's new, known issues, and pointers to additional resources.
- Product Documentation provides detailed information about GlassFish Server Open Source Edition 5.0.
Enabling the Java Client
To run Java between the client and server, your must perform the following:
Обработка ошибок:
Вызов методов нашего кода может вернуть ошибки, на которые следует обратить внимание. На данном этапе мы просто информируем о них в консоли. Заметим, что ошибки при работе с СУБД — это чаще всего SQLException.
These installation instructions describe how to install Java Platform, Enterprise Edition 8 SDK and Java Platform, Enterprise Edition 8 Web Profile SDK. The following topics are discussed:
Contents
Test Install with Samples
When you install Oracle Database with Oracle JVM option, a set of samples is also installed and available in the $ORACLE_HOME/javavm/demo directory. These samples can be compiled and run as a test of your installation.
If these samples do not compile or run, then the environment may be incorrectly set. Similarly, if these samples compile and run, but a code written by you does not, then a problem exists within the build environment or code.
When verifying your installation, it is important that you run these examples using the supplied makefiles.
Verify that the samples work before using more complex build environments, such as Visual Cafe, JDeveloper, or VisualAge.
Installing the Software
Requirements
Java EE 8 SDK distributions require JDK 8 Update 144 or higher. Oracle recommends using the latest JDK that is available. Please note: Java SE 9 is not supported at this time.
Ensure that the required JDK software is installed on your system and that the JAVA_HOME environment variable points to the JDK installation directory, not the Java Runtime Environment (JRE) software.
Please refer to the Installation Guide for GlassFish Server, OSE for additional details regarding installation of GlassFish, the Java EE Reference Implementation.
To Install the Software
The following procedure describes how to install the SDK distributions using the ZIP file.
Download the distribution file for your platform from the Java EE 8 SDK Downloads page.
Navigate to the directory where you downloaded the file.
- Solaris, Linux, and Mac OS X systems: unzip zip-file-name
- Windows systems: Unzip using your favorite file compression utility.
The Java EE 8 SDK or Java EE 8 Web Profile SDK is extracted into a new glassfish5 directory under your current directory.
Основные понятия
Начиная с версии 8.1 в состав СУБД Oracle можно дополнительно включать так называемый JServer, позволяющий использовать для хранимых процедур помимо PL/SQL еще и язык Java. В состав JServer входят следующие элементы:
- виртуальная Java-машина JVM под названием Aurora, поддерживающая среду для выполнения Java-программ и библиотеки классов Java
- средства увязки с PL/SQL
- ряд других
JVM Aurora способна исполнять методы Java ("хранимые Java-процедуры") и классы, хранимые в Oracle.
В версии 9.0 JServer переименован в Oracle9i JVM (иногда - OJVM или же Enterprise Java Server).
Место Java в архитектуре Oracle
Наличие встроенной виртуальной машины Java в Oracle -дополнительная возможность по отношению к базовой поставке.
Начиная с версии 9.2 встроенная в СУБД виртуальная машина Java не поддерживает магазины протоколов J2EE и CORBA. В частности, с этого времени нет возможности разместить в БД под управлением Oracle контейнеры для EJB, JSP и сервлетов (OSE), как это было раньше. Их предлагается размещать в среде OC4J из состава Oracle 9i Application Server. Встроенная машина Java продолжает поддерживать только работу хранимых процедур, JDBC и SQLJ.
Соотношение и взаимосвязь PL/SQL и Java в Oracle
Java в Oracle представляет собой полнофункциональную замкнутую систему, однако классы Java средствами Oracle можно "публиковать" для PL/SQL-машины и вызывать из программ на PL/SQL.
Вплоть до версии 9.2 включительно PL/SQL в Oracle несравнимо эффективнее отрабатывает SQL-запросы. С другой стороны Java обладает более богатой и универсальной языковой средой для описания приложений.
Set Up Environment Variables
After installing JDK on your client, add the directory path to the following environment variables:
This variable must be set to the top directory of the installed JDK base.
This variable must include $JAVA_HOME/bin .
This variable must include $JAVA_HOME/lib .
JAR Files Necessary for Java 2 Clients
To ensure that the Java client successfully communicates with the server, include the following files in the CLASSPATH :
Specifics of CLASSPATH requirements may vary for Oracle JVMs running on different platforms. You must ensure that all elements of CLASSPATH , as defined in the script for Oracle JVM utilities, are present.
For JDK 1.5.2, include $JAVA_HOME/lib/dt.jar
For JRE 1.5.2, include $JAVA_HOME/lib/rt.jar
For any interaction with JDBC, include $ORACLE_HOME/jdbc/lib/ojdbc5.jar
For any client that uses SSL, include $ORACLE_HOME/jlib/jssl-1_2.jar and $ORACLE_HOME/jlib/javax-ssl-1_2.jar
For any client that uses the Java Transaction API (JTA) functionality, include $ORACLE_HOME/jlib/jta.jar
For any client that uses the Java Naming and Directory Interface (JNDI) functionality, include $ORACLE_HOME/jlib/jndi.jar
If you are using the accelerator for native compilation, include $JAVA_HOME/lib/tools.jar
JAR Files Included for Clients that Use SQLJ
You must include the $ORACLE_HOME/sqlj/lib/translator.zip file for SQLJ.
In addition to this file, add the appropriate runtime X .zip file, as follows:
For a Java client using the current release of JDBC, include $ORACLE_HOME/sqlj/lib/runtime12.zip
For a Java2 Platform, Enterprise Edition (J2EE) client using the current release of JDBC, include $ORACLE_HOME/sqlj/lib/runtime12ee.zip
For any JDK client using JDBC 8.1.7 or earlier version, include $ORACLE_HOME/sqlj/lib/runtime.zip
Server Application Development on the Client
If you develop and compile your server applications on the client and want to use the same Java Archive (JAR) files that are loaded on the server, then include $ORACLE_HOME/lib/aurora.zip in CLASSPATH . This is not required for running Java clients.
Виды СУБД
- Иерархические. Данные организованы в виде древовидной структуры. Пример — файловая система, которая начинается с корня диска и далее прирастает ветвями файлов разных типов и папок разной степени вложенности.
- Сетевые. Видоизменение иерархической, у каждого узла может быть больше одного родителя.
- Объектно-ориентированные. Данные организованы в виде классов/объектов c их атрибутами и принципами взаимодействия согласно ООП.
- Реляционные. Данные этого вида СУБД организованы в таблицах. Таблицы могут быть связаны друг с другом, информация в них структурирована.
- Что такое SQL-Сервер и как он работает? Взаимодействие с СУБД происходит по клиент-серверному принципу. Некая внешняя программа посылает запрос в виде операторов и команд на языке SQL, СУБД его обрабатывает и высылает ответ. Для упрощения примем, что SQL Сервер = СУБД.
- Data Definition Language (DDL) – определения данных. Создание структуры БД и её объектов;
- Data Manipulation Language(DML) – собственно взаимодействие с данными: вставка, удаление, изменение и чтение;
- Transaction Control Language (TCL) – управление транзакциями;
- Data Control Language(DCL) – управление правами доступа к данным и структурам БД.
В 80-е годы прошлого века персональные компьютеры типа PC XT/AT завоевали рынок. Во многом это произошло благодаря модульности их конструкции. Это означает, что пользователь мог довольно просто менять ту или иную составную часть своего компьютера (процессор, видеокарту, диски и тому подобное). Это замечательное свойство сохранилось и поныне: мы меняем видеокарту и обновляем драйвер (иногда он и вовсе обновляется сам, в автоматическом режиме). Чаще всего при таких манипуляциях ничего плохого не происходит, и существующие программы продолжат работать с обновившейся системой без переустановки. Аналогично и для работы в Java с СУБД. Для стандартизации работы с SQL-серверами взаимодействие с ней можно выполнять через единую точку — JDBC (Java DataBase Connectivity). Она представляет собой реализацию пакета java.sql для работы с СУБД. Производители всех популярных SQL-серверов выпускают для них драйверы JDBC. Рассмотрим схему ниже. Приложение использует экземпляры классов из java.sql. Затем мы передаем необходимые команды для получения/модификации данных. Далее java.sql через jdbc-драйвер взаимодействует с СУБД и возвращает нам готовый результат. Для перехода на СУБД другого производителя часто достаточно сменить JDBC и выполнить базовые настройки. Остальные части программы при этом не меняются.
Initializing a Java-Enabled Database
If you install Oracle Database with Oracle JVM option, then the database is Java-enabled. That is, it is ready to run Java stored procedures, Java Database Connectivity (JDBC), and SQLJ.
This section contains the following topics:
Using The DBMS_JAVA Package
Installing Oracle JVM creates the DBMS_JAVA PL/SQL package. The DBMS_JAVA package functions can be used by both Database server and Database clients. The corresponding Java class, DbmsJava , provides methods for accessing database functionality from Java.
Configuring Oracle JVM
Before you install Oracle JVM as part of your standard Oracle Database installation, you must ensure that the configuration requirements for Oracle JVM are fulfilled. The main configuration for Java classes within Oracle Database includes configuring the:
Java memory requirements
You must have at least 50 MB of JAVA_POOL_SIZE and 96 MB of SHARED_POOL_SIZE .
You must decide whether to use dedicated server processes or shared server processes for your database server.
Создание хранимых программ на Java в Oracle
Oracle позволяет хранить Java-программы и вызывать их на исполнение с помощью встроенной JVM, полностью наподобие хранимым PL/SQL-процедурам, исполняемым встроенной PL/SQL-машиной.
Дополнительные компоненты СУБД Oracle для работы с хранимыми Java-программами
Для работы с хранимыми Java-программами посредством Jserver/OJVM в Oracle добавлены следующие компоненты разного характера:
В зависимости от характера перечисленных компонент они заводятся либо при установке программноый среды работы Oracle, либо при создании в БД среды JServer/OJVM.Схема вызова хранимых Java-программ
Хранимым Java-программам в Oracle соответствуют методы Java, подверженные следующим ограничениям (версия 8.1):
- методы, публикуемые для использования в SQL или PL/SQL, должны быть объявлены как статические
- классы не могут делать во время исполнения обращений к GUI-классам (например, к awt)
Установка JServer/OJVM в версиях 8.1 и 9
Проще и короче всего установить JServer/OJVM в виде побочного следствия установки одной из стандартных конфигураций программной среды Oracle (например, Typical или Minimal в версии 8.1).
Тем не менее, JServer/OJVM можно доустановить к имеющейся программной среде, если он отсутствовал ранее, путем запуска сценария initjvm.sql из каталога %ORACLE_HOME%\javavm\install (система обозначений Windows).
Пример создания хранимой Java-программы
Хранимые Java-программы могут создаваться в БД под Oracle двумя способами:
- загрузкой извне с помощью программы loadjava и
- SQL-предложением CREATE/ALTER JAVA …
Ниже показаны оба способа на примере класса, создаваемого в рамках пакета training.demos.
Создание с помощью loadjava
Пусть в каталоге training/demos имеется файл MyJavaAgentInOracle.java (имеет отличия от файла MyHi.java, приведенного выше):
package training.demos;public class MyJavaAgentInOracle <
public static String sayHello (String toWhom) return "Hello, " + toWhom + "!";
>
>Загрузка в схему SCOTT БД текста кода для класса в этом файле (система обозначений Windows; в Unix-оболочках аналогично):
(в версии 9 %CLASSPATH%;%ORACLE_HOME%\javavm\lib\aurora.zip )
loadjava -user scott/tiger -o training/demos/MyJavaAgentInOracle.java
Если в том же каталоге у нас будет странслированный программой javac класс MyHiFromOracle, можно будет загрузить в БД сразу его:
loadjava -user scott/tiger -o training/demos/MyJavaAgentInOracle.class
Создание SQL-предложением
Загрузить код того же класса можно по-другому:
CREATE JAVA SOURCE NAMED "training/demos/MyJavaAgentInOracle" AS
public class MyJavaAgentInOracle < public static String sayHello (String toWhom) < return "Hello, " + toWhom + "!";
>
>;
/Обращение к загруженной в Oracle процедуре Java
Обращение к Java-программе из Java-кода делается как обычно.
Для обращения к сохраненной в БД Java-программе из PL/SQL, ее следует опубликовать для этого языка:
CREATE FUNCTION say_hello_from_java_to (to_whom IN VARCHAR2)
RETURN VARCHAR2
AS LANGUAGE JAVA
NAME 'training.demos.MyJavaAgentInOracle.sayHello (java.lang.String)
return java.lang.String';
/После этого можно выполнить в SQL*Plus:
SET SERVEROUTPUT ON
EXEC DBMS_OUTPUT.PUT_LINE(say_hello_from_java_to('World'))Работа со словарем-справочником
Организация справочной информации
Справочная информация о программных элементах Java распределена между словарем-справочником СУБД (таблица DBA_OBJECTS) и специальными структурами, создаваемыми в каждой схеме, владеющей этими элементами.
При первой загрузке программных элементов Java в любую схему loadjava или команда CREATE JAVA создадут там:
- CREATE$JAVA$LOB$TABLE - таблицу для хранения кода Java-программ
- JAVA$CLASS$MD5$TABLE - хеш-таблицу для хранения цифровых подписей (digest) для каждого загружаемого объекта (с целью учета необходимости перетранслировать предъявляемый объект)
- Несколько вспомогательных объектов, играющих вместе с этими двумя таблицами роль своеобразного "словаря-справочника программных элементов Java" в конкретной схеме.
Фактически загрузка программой loadjava вызывает неявную выдачу команды CREATE JAVA … . Описание программных элементов Java заносится в таблицу CREATE$JAVA$LOB$TABLE. Повторная загрузка одного и того же Java-элемента реально выполняться не будет, если только (а) он не изменил свое описание или (б) не указан ключ -force при вызове программы loadjava.
Просмотр Java-элементов
Java-объекты, заведенные в схеме, можно просмотреть из таблицы USER_OBJECTS словаря-справочника обычным способом:
COLUMN object_name FORMAT A30
SELECT object_name, object_type, status, timestamp
FROM user_objects
WHERE object_name NOT LIKE 'SYS_%' AND
object_name NOT LIKE 'CREATE$%' AND
object_name NOT LIKE 'JAVA$%' AND
object_name NOT LIKE 'LOADLOB%' AND
object_type LIKE 'JAVA %'
ORDER BY 2, 1;Просмотр исходных текстов
Выгрузить из БД исходные тексты из "словаря-справочника объектов Java" конкретной схемы можно с помощью процедур пакета DBMS_JAVA:
DECLARE
PROCEDURE put_java_source(jclass IN VARCHAR2) IS
b CLOB;
v VARCHAR2(4000);
i INTEGER := 4000;
BEGIN
DBMS_LOB.CREATETEMPORARY(b, FALSE);
DBMS_JAVA.EXPORT_SOURCE(jclass, b);
DBMS_LOB.READ(b, i, 1, v);
DBMS_OUTPUT.PUT_LINE(v);
END;
BEGIN
put_java_source('training/demos/MyJavaAgentInOracle');
END;
/Исходные тексты программ на Java в БД модно посмотреть также в консоли Oracle Enterprize Manager или в аналогичных системах третьих фирм.
Преобразование имен
Стандарт именования классов в Java допускает более длинные имена, чем предел в 30 знаков в SQL Oracle. Достаточно длинные Java-имена Oracle при помещении в словарь-справочник самостоятельно заменяет на придуманные более короткие. Получить первоначальное имя по присвоенному Oracle можно с помощью функции DBMS_JAVA.LONGNAME. Пример ее использования:
COLUMN shortname FORMAT A30
COLUMN longname FORMAT A60SELECT object_name shortname,DBMS_JAVA.LONGNAME(object_name) longname
FROM user_objects
WHERE object_type = 'JAVA CLASS';Кроме того, при помещении составного имени Java в БД Oracle переводит точки в знаки "/", например
training.demos.MyHiFromOracle
в
training/demos/MyHiFromOracle.Для хранения данных, как правило, используются базы данных. В приложениях на Java мы можем использовать различные системы управления базами данных. Но так как, на сегодняшний день одной из наиболее используемых в приложениях на Java является СУБД MySQL, то основные моменты взаимодействия с БД будут рассматриваться преимущественно на примере MySQL.
Один из способов работы с базой данных представляет использование JDBC. JDBC (Java Database Connectivity) представляет специальный API, благодаря которому мы можем абстрагироваться от конкретной СУБД с ее особенностями и использовать единый интерфейс для работы с различными СУБД.
Для работы с базой данных в приложении на Java через JDBC необходим драйвер. Обычно разработчик каждой отдельной СУБД (MySQL, Oracle, PostgreSQL и т.д.) предоставляет специальный драйвер. Более подробно про аспекты работы в приложении Java можно посмотреть в соответствующем руководстве Java и базы данных. В данном же случае мы сосредосточимся непосредственно на работе с бд именно в JavaEE.
На странице загрузок выберем в поле "Select Operating System" пункт "Platform Independent" и затем загрузим zip-пакет с драйвером.
Распакуем загруженный пакет и найдем файл mysql-connector-java-8.0.12.jar (версия файла может отличаться).
Создадим в Eclipse новый проект по типу Dynamic Web Project и добавим в его папку WebContent/WEB-INF/lib :
Убедимся, что сервер MySQL запущен и сперва проверим, что мы можем подключаться к серверу базы данных. Вначале создадим на сервере MySQL пустую базу данных, которую назовем products и с которой мы будет работать в приложении на Java EE. Для создания базы данных применяется выражение SQL:
Эту команду можно выполнить либо из консольного клиента MySQL Command Line Client, либо из графического клиента MySQL Workbench, которые устанавливются вместе с сервером MySQL. Подробнее про создание базы данных можно прочитать в статье Создание и удаление базы данных.
Далее добавим в проект сервлет. Допустим, он будет называться ProductsServlet и будет содержать следующий код:
Переменная url хранит строку подключения. В частности, здесь она указывает, что сервер MySQL запущен на локальной машине (localhost), а подключение идет к бд productdb. Переменные username и password указывают соответственно на логин и пароль к серверу MySQL. В каждом конкретном случае эти значения могут отличаться.
Затем идет загрузка драйвера:
И далее создается объект Connection для взаимодействия с базой данной:
Install Java SE on the Client
The client requires Java Development Kit (JDK) 1.6 or later. To confirm the version of JDK you are using, run the following commands on the command line:
Modifying an Existing Oracle Database to Include Oracle JVM
If you have already installed Oracle Database without Oracle JVM, then you can add Java to your database through the modify mode of the Database Configuration Assistant of Oracle Database 12 c Release 1 (12.1). The modify mode enables you to choose the features, such as Oracle JVM, that you would like to install on top of an existing Oracle Database instance.
Особенности Java и среда работы программ на Java
Архитектура и принципы работы Java резко отличаются от архитектуры и принципов работы PL/SQL. Ниже излагаются некоторые особенности Java, существенные для использования этого языка при работе с Oracle.
Программные компоненты в среде разработки на Java
Основными программными компонентами в среде разработки на Java являются исходный код, класс, пакет, интерфейс, файл ресурсов. Взаимоотношение показано на рисунке.
Пакет используется для логический группировки программных единиц Java.
Архив используется для физической группировки программных единиц Java, необходимых для работы конкретной Java-программы, могущих быть вызваных прямо или по цепочке. Технологически часто единственная альтернатива неимоверному числу .class-файлов.
Установка среды разработки на Java
Для ведения разработок с использованием Java необходимо установить на компьютере JDK (Java Development Kit, прежнее название - SDK, Software Development Kit for Java).
Начиная с версии Oracle 8.1 JDK присутствует на CD с основной поставкой и может устанавливаться штатной программой Oracle Installer путем специального указания. В типовых вариантах установки программной среды Oracle (например, в вариантах Typical или Minimal в версиии 8.1) JDK появляется на компьютере автоматически.
Среда окружения OC
Для работы программ среды разработки Java должны быть выставлены следующие минимально необходимые переменные среды окружения ОС:
- CLASSPATH. Переменная, которая указывает на местонахождение файлов с классами, необходимыми для трансляции или выполнения java-программы. Местонахождением может быть (а) каталог файловой системы, в котором расположены файлы с классами и (б) zip- или jar-файл с теми же файлами, упакованными внутрь. Путь к файлу с классом должен быть согласован с полным именем класса, включающим имя пакета. Если имя пакета не используется, в CLASSPATH следует включить "." (указание на текущий каталог). (Строго говоря, для работы программ java и javac переменную CLASSPATH можно и не выставлять, но тогда эти программы обязаны использовать ключ -classpath, иначе не обязательный.)
- PATH. Сюда нужно включить доступ к программам среды разработки.
Исполняемые модули из состава JDK в версии 8.1 расположены в %ORACLE_HOME%\apache\jdk\bin, а в версии 9 - в %ORACLE_HOME%\ jdk\bin.
Основные библиотеки классов classes111.zip и classes12.zip (разница между ними - в версиях Java) в обеих версиях Oracle находятся в %ORACLE_HOME%\jdbc\lib
Для проведения экспериментов удобно создать командный файл со следующим текстом для версии Oracle 8.1:
или со следующим текстом для версии Oracle 9.2:
Теперь можно открыть консольное окошко и прогнать нужный командный файл.
Two-Tier Duration for Java Session State
Prior to 11 g release 1 (11.1), Java session state was single-tier, which included all values associated with running Java, such as System property values and static variable values, the set of classes loaded during the session and so on. The duration of this state used to start with the first invocation of a Java method in the RDBMS session and it used to last till JVM exited, either due to a call to java.lang.System.exit or similar OracleRuntime methods, an uncaught exception, a fatal error, or the end of the RDBMS session. This required modifying Java code and also failed to fully complete the termination of the session before the end of the RDBMS call. This made it impossible to start a new Java session within the same call.
Starting with 11 g release 1 (11.1), Java session state is split into two tiers. One tier has a longer duration and it encompasses the duration of the other tier. The duration of the shorter tier is the same as before, that is, it starts when a Java method is invoked and ends when JVM exits. The duration of the longer tier starts when a Java method is invoked in the RDBMS session for the first time. This session lasts until the RDBMS session ends or the session is explicitly terminated by a call to the function dbms_java.endsession_and_related_state . This is addressed by the addition of the following two PL/SQL functions to the DBMS_JAVA package, which account for the two kinds of Java session duration:
FUNCTION endsession RETURN VARCHAR2;
This function clears any Java session state remaining from previous execution of Java in the current RDBMS session. The return value is a message indicating the action taken.
FUNCTION endsession_and_related_state RETURN VARCHAR2;
This function clears any Java session state remaining from previous execution of Java in the current RDBMS session and all supporting data related to running Java, such as property settings and output specifications. The return value is a message indicating the action taken.
Most of the values associated with running Java remain in the shorter tier. The values that can be useful for multiple invocations of JVM have been moved to the longer tier. For example, the system property values established by dbms_java.set_property and the output redirection specifications.
Блок констант:
- DB_Driver: Здесь мы определили имя драйвера, которое можно узнать, например, кликнув мышкой на подключенную библиотеку и развернув её структуру в директории lib текущего проекта.
- DB_URL: Адрес нашей базы данных. Состоит из данных, разделённых двоеточием:
- Протокол=jdbc
- Вендор (производитель/наименование) СУБД=h2
- Расположение СУБД, в нашем случае путь до файла (c:/JavaPrj/SQLDemo/db/stockExchange). Для сетевых СУБД тут дополнительно указываются имена или IP адреса удалённых серверов, TCP/UDP номера портов и так далее.
Читайте также: