Для остановки Derby Network Server

advertisement
Using the 10 Core and 1.1 UI Derby plug-ins
Этот документ рассматривает компоненты и функциональность Derby plug-ins для Eclipse. Также
обсуждается установка и использование plug-ins. Предполагаются некоторые знания по
применению Eclipse перед чтением этого документа, однако, помощь Eclipse для plugin является
эффективной для новичка Eclipse для создания простого приложения в Eclipse с использованием
Derby plug-ins.
Архитектура plug-ins
Plug-ins для Derby Core, UI и Help все доступны в двоичном виде.
Список внизу представляет собой содержимое последних версий этих plug-ins:
Имя двоичного Zip файла
Имя Plugin
Содержимое
Местоположение исходника
derby_core_plugin_10.3.1.zip Derby Core Plug-in, derby.jar, derbytools.jar,
Plug-in для Derby Core может быть
org.apache.derby.core derbynet.jar,
построен , когда jar файлы для Derby
_10.3.1
derbyclient.jar, plugin.xml строятся из исходных текстов.
Следуйте инструкциям из файла
BUILDING.TXT на странице Apache
Derby: Downloads , в секции How to build
Derby.
derby_ui_plugin_1.1.1.zip
Derby UI Plug-in,
ui.jar, plugin.xml
org.apache.derby.ui_1
.1.1
trunk/plugins/eclipse/org.apache.derby.ui
derby_ui_plugin_1.1.1.zip
Derby Plug-in
Файлы html и image в
Documentation,
plugin.xml, toc.xml
org.apache.derby.plug
in.doc_1.1.1
trunk/plugins/eclipse/org.apache.derby.plugin.
doc
Эти инструкции предполагают, что у вас имеются данные релизы. Если доступны более свежие
версии, то можно загрузить их соответственно.
Функциональность
После установки plug-in для Derby core следующие файлы jar размещаются в подкаталоге plugins в Eclipse из org.apache.derby.core_10.3.x:

derby.jar, derbytools.jar, derbynet.jar, derbyclient.jar
Функциональность обеспечивается core plug-in и, таким образом, СУБД Derby доступна для
пользователей Eclipse, однако никаких средств или дополнений графической среды для Eclipse
пока не доступно.
После установки plug-in Derby UI, компоненты графического интерфейса - меню и всплывающие
окна – те, что поддерживают Apache Derby, доступны из проекта Eclipse. После установки plugin Help устанавливается Users Guide Derby plug-in в меню помощи Eclipse. Иными словами, этот
plug-in не будет работать и никакие пункты меню не появятся, если core plug-in не установлен.
Следующая функциональность будет добавлена к IDE Eclipse после установки plug-in UI:


Добавление и удаление сущности (nature) СУБД Derby в проект Eclipse
Возможность конфигурировать сетевой сервер Derby для каждого проекта, включая
номер порта и derby.system.home

Все файлы jar Derby добавляются в Java Build Path для проекта Eclipse

Выполнение ij и скриптов SQL изнутри Eclipse

Запуск и остановка сетевого сервера Derby изнутри Eclipse

Запускать sysinfo изнутри Eclipse
Установка plug-ins
Естественно предполагается, что перед установкой plug-ins необходимо установить Eclipse 3.3.
Двоичная версия plug-in, которая не содержит исходников, доступна для загрузки для любой из
версий Derby на странице downloads.html. Загрузите derby_core_plugin_10.3.2.1-bin.zip из Derby
10.3.2.1 или из указанного места локальной сети.
Unzip файлы в подкаталог plugin в каталоге Eclipse. Местоположение, где установлен Eclipse is
указывается в переменной окружения ECLIPSE_HOME. Например, это может быть /eclipse в Linux
или Unix или C:/eclipse в Windows. Unzip файлы в ECLIPSE_HOME подкаталог. Скопируйте все
файлы каталога из ui и help в подкаталог plugins. Например, подкаталоги
org.apache.derby.ui_1.1.1 и org.apache.derby.plugin.doc_1.1.1 после загрузки будут находиться в
Eclipse. Три новых подкаталога будут находиться в подкаталоге ECLIPSE_HOME/plugins:

org.apache.derby.core_10.3.2

org.apache.derby.ui_1.1.1

org.apache.derby.plugin.doc_1.1.1
Запуск Eclipse и получение Help
Если вы новичок в Eclipse, этот раздел поможет начать использование Eclipse, следуя
информации, содержащейся в Derby Plug-ins User's Guide, которая является частью системы Help
для Eclipse. Это руководство полезно как для новых, так и для опытных пользователей. Если вы
знакомы с Eclipse, пропустите этот раздел, но обратитесь к Help для plug-ins по ссылке Help
>> Help Contents >> Derby Plug-ins User Guide. Каждая задача, описанная в этом документе
более детально представлена в разделе помощи.
Запустите eclipse.exe под управлением ОС Windows в подкаталоге ECLIPSE_HOME, или eclipse в
Linux или Unix среде. Примите предложенное размещение workspace по умолчанию. При первой
загрузке Eclipse появится окно Welcome. Закройте его.
Откройте Help для Derby plug-ins, которая содержит tutorial и примеры как создать проект Eclipse,
добавить сущность Apache Derby и использовать другие пункты меню, связанные с plug-ins. Из
главного меню Eclipse выберите Help >> Help Contents >> Derby Plug-ins User Guide.
Расширьте раздел Getting Started в Derby Plug-ins User Guide и обратитесь к каждому шагу для
изучения того, как создавать проект Eclipse, добавлять сущность Apache Derby и в конечном
счете строить приложение, которое получает доступ к базе Derby.
Добавление сущности Apache Derby Nature к проекту Eclipse
Если пропустили предыдущий раздел, Запуск Eclipse и получение Help, запустите Eclipse
сейчас после установки plugins если до сих пор этого не сделано. Создайте новый или откройте
существующий проект. Утверждения меню Apache Derby будут доступны при нажатии на правую
кнопку при выделении проекта.
Для добавления сущности Apache Derby Nature к проекту, нажмите правую кнопку и выберите
Apache Derby >> Add Apache Derby nature.
Добавление сущности Derby к проекту Eclipse состоит в следующем:

Добавляются файлы derby.jar, derbynet.jar, derbytools.jar, derbyclient.jar к Java
Build Path проекта.

Включает функциональность Derby к проекту. Ряд других подпунктов меню появятся в
пункте меню Apache Derby . Инструментарии ij и sysinfo доступны, а также может быть
запущен и остановлен Apache Derby Network Server, используя эти меню.

Доступны свойства Allows Apache Derby, какие как port number, который прослушивается
Network Server, также значение derby.system.home может быть установлено для проекта.
Follow the Getting Started section in the Plug-in documentation or use the Derby Plug-in Users Guide
in the Help to learn how to start the Network Server, use ij and sysinfo and build a Java application
which uses Derby.
Приступим к работе с Derby plug-ins для Eclipse
Plug-ins Apache Derby для Eclipse обеспечивает естественную интеграцию Eclipse и Apache Derby.
Он позволяет использовать JAR файлы СУБД Derby как предустановленные компоненты Eclipse.
Кроме того, инструментарий ij SQL scripting и Apache Derby Network Server могут быть запущены
из консоли Eclipse.
Следующие шаги позволят притупить к использованию как Eclipse так и Derby!

Создание Eclipse Java project.

Добавление сущности Apache Derby к проекту Java.

Стартовать Derby Network Server.

Запустить ij для создания и соединения к базе данных Derby. ij является
инструментальным средством Derby, которое позволяет использовать команды SQL в базе
данных.

Запускать SQL scripts к базе данных используя ij.

Создать Java application, которое получает доступ к базе данных Derby.

Останавливать Derby Network Server.


Получать информацию о Java и Derby для помощи в устранении проблем, используя
sysinfo.
Для получения большей информации о Apache Derby обращайтесь на documentation.
Создание проекта Java в Eclipse
Шаги ниже позволяют создать проект Java, используя многие установки по умолчанию с тем,
чтобы упростить работу.

Из главного меню окна Eclipse выберите File > New > Project. Откроется мастер нового
проекта.

Выберите Java Project и нажмите Next.

В поле Project name введите имя для нового проекта Java, например myJavaProject.




Для размещения, выберите Create project in workspace и для Project Layout,
выберите Use project folder as root for sources and class files.
Нажмите кнопку Next, затем Finish.
Вам может быть предложено переключиться в перспективу Java (switching to the Java
Perspective) – ответьте Yes на этот вопрос.
Вид (view) Package Explorer показывает новый проект.
Добавление сущности Derby к проекту Java
После создания проекта Java создается сущность (nature) Derby, которая может быть добавлена
внутри перспективы Java. Для добавления сущности Derby в проект:

Из перспективы Java выберите проект в виде Package Explorer.Нажмите правую
кнопку, откроется контекстное меню, в котором выберите пункт меню Apache Derby, Add
Apache Derby nature.
Старт Derby Network Server
Derby Network Server позволяет многим приложения выполняться в различных Java Virtual
Machines для доступа к единственной базе данных. После запуска Network Server клиентские
приложения из Eclipse, такие как ij или другие приложения Java, могут получать доступ к базе
данных Derby. Кроме того, Network Server позволяет клиентским приложениям вне Eclipse на
localhost или даже с удаленного хоста получать доступ к той же базе данных.
Для запуска Derby Network Server


Сущность Derby должна быть добавлена к проекту до запуска Network Server.
Для выбранного проекта в контекстном меню выберите пункт меню Apache Derby, Start
Derby Network Server.

Появляется окно, в котором устанавливается состояние попытки старта Apache Derby
Network Server.

Если попытка запуска сервера удалась, то в виде Console появится сообщение Server is
ready to accept connections on port xxxx. Для каждого проекта, который связан с
выполняющимся сервером появляется зеленая стрелка рядом с именем проекта.
Значение хоста Derby Network Server
Запустив Derby Network Server с использованием значения сервера по умолчанию сервер
выполняется на localhost, который является хостом, выполняющимся в Eclipse на порту 1527.
Для изменения имени хоста или номера порта, на котором выполняется Derby Network Server
смотрите Setting Derby properties for a project.
Значение имени хоста для Network Server воздействует на возможность удаленного хоста
соединяться с Network Server. Если значение имени хоста Network Server Host в Project Properties
установлено localhost, только клиенты хоста, на котором выполняется Eclipse, могут соединяться
с сервером. Если используется ip-адрес или имя хоста (отличное от 'localhost'), клиентские
приложения с других хостов могут соединяться с Derby Network Server. За дополнительной
информацией о запуске Derby Network Server обращайтесь к руководству Derby Server и
Administration.
Если разрешается соединение с других хостов, то рекомендуется запускать под управлением
менеджера безопасности Java (security manager) и позволять аутентификацию пользователей
перед стартом Derby Network Server.
Использование ij для выполнения команд SQL
ij, интерактивный инструментарий SQL scripting, обеспечиваемый Derby, позволяет оперативно
создавать запросы данных к базе. Выполнение ij изнутри Eclipse повышает скорость разработки
приложений, тестируя и выполняя утверждения SQL перед кодированием вызовов JDBC.
Для запуска launch ij

Выберите проект и активируйте контекстное меню. Выберите пункт меню Apache Derby,
ij (Interactive SQL).

Вид Console выведет приглашение ij . Для нашего примера предполагаем, что Derby
Network Server запущен; если он не запущен, запустите его сейчас.

Первым шагом при использовании Derby является соединение с базой данных с помощью
URL соединения JDBC. URL соединение мы будем использовать в нашем примере для соединения
Network Server с помощью драйвера Derby Network Client с localhost. Будем создавать базу
данных с именем myDB как пользователь 'me' с паролем 'mine'.
Для соединения с базой данной из ij нам необходимо выполнить команду connect , которая
выглядит следующим образом:
connect 'jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine';

Скопируйте и вставьте строку соединения URL в в окно консоли ij. Команда создаст базу
данных с именем myDB в текущем workspace для текущего проекта Java.

Также создадим таблицу в нашей базе данных myDB, вставим несколько строк и выберем
все строки из таблицы. Ниже SQL для выполнения этого:
create
insert
insert
insert
select

table restaurants(id integer, name varchar(20), city varchar(50));
into restaurants values (1, 'Irifunes', 'San Mateo');
into restaurants values (2, 'Estradas', 'Daly City');
into restaurants values (3, 'Prime Rib House', 'San Francisco');
* from restaurants;
Скопируйте и вставьте эти SQL строки (по одной) в окно консоли ij .
Пример вывода сессии ij , который выполняет команды sql представлен ниже.
URL соединение, показанное выше, используется для соединения с Derby Network Server. Если
вы захотите соединиться с базой данных, используя Derby JDBC встроенный драйвер URL
соединение выглядит следующим образом jdbc:derby:myDB;create=true, а команда
соединения ij может быть следующей:
connect 'jdbc:derby:myDB;create=true';
Для более детальной информации о синтаксисе URL соединения обращайтесь к Tools & Utility
Guide.
Использование ij для выполнения скриптов SQL
Скрипты ij - файлы, которые имеют расширение.sql , содержат команды SQL, могут
выполняться, используя plug-ins Derby. Они позволяют использовать скрипты, содержащие
несколько команд и запускать их за один раз в ij.
Действуйте следующим образом для выполнения скрипта SQL

Создайте скрипт, который содержит команды SQLи сохраните файл с расширением .sql.
Не забудьте сделать соединение первой командой, так как соединения по умолчанию не
существует

Сохрание файл в текущей workspace в проекте Java или импортируйте его в ваш
workspace.

Запустите скрипт, используя пункт меню Apache Derby, Run SQL script using 'ij'

Вывод появляется в окне консоли ij .
Пример создания и выполнения скрипта SQL
Ниже мы выполним пример с файлом sql с названием restaurants.sql. Этот пример основывается
на таблице, созданной в разделе помощи Using ij to issue SQL commands. Запустите этот SQL
перед выполнением последующих шагов.
Из главного меню Eclipse выберите File, New, File.
Используйте текущий проект Java как родительский подкаталог, например, myJavaProject.
Назовите файл restaurants.sql и нажмите Finish.
После этого будет выглядеть примерно так.
Введите следущее в окне редактора restaurants.sql (вам может потребоваться выполнить двойной
щелчок на файл restaurants.sql для создания окна редактора для ввода.)
connect 'jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine';
insert into restaurants values (4, 'Grande Burrito', 'Oakland');
update restaurants set city = 'Ukiah' where name = 'Irifunes';
select * from restaurants;
disconnect;
exit;
Сохраните файл restaurants.sql. Используйте Ctrl + S в окне среды для сохранения открытого
файла. После сохранения файла звездочка пропадет рядом с именем файла в редакторе.
Последний шаг состоит в выполнении скрипта SQL. Нажмите правую кнопку при выделенном
файле restaurants.sql вокне Package Explorer и выберите пункт меню Apache Derby, Run
SQL Script using 'ij'.
Вид Console показывает команды SQL, содержащиеся в файле и выполнение в ij вместе с
выводом команд.
Создание приложения Java для доступа к базе данных Derby
После знакомства с запуском network server и выполнением запросов уже можно приступить к
использованию Derby из приложения Java. Этот раздел демонстрирует использование Derby из
приложения Java.
В этом примере будет выполнен доступ к данным в базе данных myDB, которая содержит
таблицу restaurants. Если вы помните, мы уже создали базу данных с таким именем и она готова
к использованию. Если вы еще не создали базу данных, сделайте это вернувшись в раздел
работы с ij.
Этапы создания Java - приложения

В перспективе Java, выберите вида Package Explorer . При открытии контекстного
меню после нажатия правой кнопки выберите New, Class.
Введите имя пакета (package name) myapp, назовите класс Restaurants, оставьте класс public и
включите метод main в класс. Рисунок внизу пример назначения. Нажмите кнопку Finish для
создания класса.
Класс Java class, представленный ниже, Restaurants.java, соединяется с Derby Network Server,
вставляет строку в таблицу restaurants и затем показывает выборку из таблицы restaurants.
Скопируйте код внизу в окно редактора the Java в файл Restaurants.java .
package myapp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSetMetaData;
public class Restaurants
{
private static String dbURL =
"jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine";
private static String tableName = "restaurants";
// jdbc Connection
private static Connection conn = null;
private static Statement stmt = null;
public static void main(String[] args)
{
createConnection();
insertRestaurants(5, "LaVals", "Berkeley");
selectRestaurants();
shutdown();
}
private static void createConnection()
{
try
{
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
//Get a connection
conn = DriverManager.getConnection(dbURL);
}
catch (Exception except)
{
except.printStackTrace();
}
}
private static void insertRestaurants(int id, String restName, String
cityName)
{
try
{
stmt = conn.createStatement();
stmt.execute("insert into " + tableName + " values (" +
id + ",'" + restName + "','" + cityName +"')");
stmt.close();
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
}
}
private static void selectRestaurants()
{
try
{
stmt = conn.createStatement();
ResultSet results = stmt.executeQuery("select * from " +
tableName);
ResultSetMetaData rsmd = results.getMetaData();
int numberCols = rsmd.getColumnCount();
for (int i=1; i<=numberCols; i++)
{
//print Column Names
System.out.print(rsmd.getColumnLabel(i)+"\t\t");
}
System.out.println("\n------------------------------------------------");
while(results.next())
{
int id = results.getInt(1);
String restName = results.getString(2);
String cityName = results.getString(3);
System.out.println(id + "\t\t" + restName + "\t\t" +
cityName);
}
results.close();
stmt.close();
}
catch (SQLException sqlExcept)
{
sqlExcept.printStackTrace();
}
}
private static void shutdown()
{
try
{
if (stmt != null)
{
stmt.close();
}
if (conn != null)
{
DriverManager.getConnection(dbURL + ";shutdown=true");
conn.close();
}
}
catch (SQLException sqlExcept)
{
}
}
}
После компиляции Restaurants.java без ошибок запустите приложение, нажав правую кнопку и
выбрав Run, Java Application.
Вывод приложения Restaurants.java показан ниже. Он показывает успешный ввод строки в
таблицу restaurants и выбирает все строки из таблицы. Если обнаруживаются ошибки в процессе
выполнения приложения, убедитесь, что запущен Derby Network Server на порт 1527 и база
данных myDB существует в текущем workspace в Java проекте.
Изменение приложения на использование драйвера Derby Embedded Driver
Restaurants.java получает доступ к базе данных Derby myDB с использованием драйвера Derby
Network Client Driver. Значения для загрузки драйвера и URL для соединения с базой данных
показаны ниже.


Driver name org.apache.derby.jdbc.ClientDriver
Database connection
URL jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine
Для изменения приложения с использованием Derby Embedded Driver требуется изменить эти
значения на:

Driver name org.apache.derby.jdbc.EmbeddedDriver

Database connection URL jdbc:derby:myDB;create=true;user=me;password=mine
Об именах схемы
Если база данных создается в Derby, используя встроенный драйвер и имя пользователя не
определено, используемой схемой по умолчанию становится APP. Следовательно, любые
таблицы, созданные в базе данных имеют схемы с именем APP. Однако, когда создаваемая база
данных Derby использует Network Server, значение для схемы становится значения имени
пользователя частью соединение URL. В нашем примере мы сначала создавали базу данных
myDB , используя имя me.
Когда мы изменяем приложение для соединения, используя встроенный драйвер, схема по
умолчанию будет APP, When we change the application to connect using the embedded driver, the
schema will default to APP, если мы явно не задаем схему или передаем имя пользователя как
часть соединения URL. Для доступа к таблице без передачи имени пользователя как части
соединения URL можно обращаться к таблице как ME.restaurants.
Только две строки кода необходимо изменить в Restaurants.java для того, чтобы использовать
Derby Embedded Driver для доступа к базе данных myDB и вставку и выбор из таблицы and
me.restaurants. Старые значения ниже.
// variables
private static String dbURL =
"jdbc:derby://localhost:1527/myDB;create=true;user=me;password=mine";
// from the createConnection method
Class.forName("org.apache.derby.jdbc.ClientDriver").newInstance();
Новые значения для использования Embedded Driver.
// variables
private static String dbURL =
"jdbc:derby:myDB;create=true;user=me;password=mine";
// from the createConnection method
Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
Закомментируйте старые значения и замените их новыми. Вновь откомпилируйте класс и если
Derby Network Server выполняется, остановите его перед запуском приложения Java с Embedded
Driver.
Приложения, использующие с Derby Embedded Driver могут получать доступ только с одной
виртуальной машины Java (JVM). Приложения, использующие Derby Network Server могут
получать доступ с других JVM.
Остановка Derby Network Server
Как уже отмечалось, Derby Network Server позволяет нескольким приложениям выполняться на
на различных виртуальных машинах для доступе к одной базе данных Derby. .
Для остановки Derby Network Server

Выберите проект Java, в контекстном меню выберите пункт Apache Derby, Stop Derby
Network Server.

В появившемся всплывающем окне отображается состояние сервера Apache Derby
Network Server при попытке остановки.


Если сервер завершил работу успешно, то на Console отображается сообщение
Shutdown successful.
Когда завершается Network Server, связанный с определенным проектом, то зеленая
стрелка, указывающая на работающий сервер рядом с именем проекта, перестает быть видимой.
Running sysinfo для получения информации среды
sysinfo предоставляет информацию о системе Derby.Этот инструментарий полезен для
определения текущих сред Java и Derby.
Для того чтобы запустить sysinfo

Выберите проект и в контекстном меню выберите пункт sysinfo (Derby System
Information).

Вид Console показывает результат выполнения команды sysinfo , который состоит из
трех разделов:
o
o
o

Информация о Java
Информация о Derby
Локальная информация, (если представлена)
Дополнительная информация о sysinfo может быть получена в Derby Tools & Utility Guide.
Пример вывода sysinfo приведен ниже.
Download