на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Огляд технології сервлетів
авантаження драйвера може здійснюватися як з програми, так і з командного рядка.

Для завантаження драйвера JDBC з командного рядка необхідно ввести наступну команду:

Java -Djdbc.drivers=sun.odbc.JdbcOdbcDriver MyApplication

При реєстрації драйвера-моста JDBC-ODBC з програми у Вас повинні бути:

- JAR-файл з драйвером повинен бути підключений в CLASSPATH.

- Ви повинні знати назву класу-драйвера, який ви збираєтеся підключати (цю інформацію шукайте на сайті виробника драйверів).

JAR Ви підключили, тепер необхідно зареєструвати драйвер:

String driver=" sun.odbc.JdbcOdbcDriver";

try{

Class.forName(driver).newInstance();

DriverManager.registerDriver( (Driver)Class.forName(driver).newInstance());

} catch(Exception e)

{ System.out.println("Exception while register driver: "+e); }

2.2 Формування JDBC-URL-рядка

У найзагальнішому випадку цей рядок має вигляд:

jdbc:id_бази:параметри

У разі MySQL вона має вигляд:

jdbc:mysql://хост/база?user=користувач

Наприклад:

jdbc:mysql://127.0.0.1/GENERAL?user=root

Необхідний відступ з приводу "особливостей" роботи драйверів mysql. Для підключення необхідна передача login/password в JDBC драйвер, проте JDBC-драйвера MySQL, які зустрічалися під час виконання дипломного проекту сприймали тільки login, прописаний в рядку JDBC-URL і ніякими іншими способами примусити сприйняти драйвер необхідні параметри не вийшло.

2.3 Отримання екземпляра об'єкта класу Connection

Для отримання Connection необхідно викликати DriverManager. getConnection() і передати у всередину login/password/jdbc-url:

String url="jdbc:mysql://127.0.0.1/GENERAL?user=root";

String user="";

String password="";

Connection c=null;

try{

c=DriverManager.getConnection(url,user,password);

} catch(SQLException e)

{ System.out.println("Exception getting connection: "+e); }

2.4 Формування SQL запиту

На даному етапі необхідно сформувати звичайну SQL команду, наприклад:

String str="select * from Mytable";

String str="insert into Mytable (name,cnt) values ('"+name+"',"+cnt+"')";

2.5 Виконання і обробка SQL-запиту

Для виконання запиту необхідно отримати об'єкт Statement у екземпляра об'єкта класу Connection, і викликати один з його методів, залежно від типу запиту:

public int executeUpdate(String sql) throws SQLException

Застосовується для SQL команд INSERT, UPDATE або DELETE. Повертає кількість рядків над якими виконалася операція.

public ResultSet executeQuery(String sql) throws SQLException

Застосовується для SQL команди SELECT. Повертає ResultSet з якого можна витягнути інформація про шапку таблиці (ResultSetMetaData) і самі значення. Як це робиться буде показаний нижче в прикладі.

public boolean execute(String sql) throws SQLException

Даний метод повертає true/false - виконався/не виконався запит. Застосовується в тих випадках коли SQL запит повертає декілька ResultSet'ів. Для їх отримання використовуйте getMoreResults().

Закриття одержаних з'єднань (ResultSet, Statament, Connection)

У кожного з вказаних об'єктів є метод

close();

При необхідності виконання схожих SQL-операторів декілька разів використання підготовлених операторів виявляється більш ефективнішим, ніж виконання кожного разу одного і того ж оператора із різними значеннями параметрів. Створюється параметризований оператор стандартного виду, який надсилається БД на компіляцію перед тим, як він використовуватиметься. Для позначення місць у запиті, де підставлятимуться реальні значення параметрів, використовують знаки питання. Кожного разу при використанні підготовлених операторів достатньо замінити один з параметрів за допомогою методів setXxx. Потім викликається метод executeQuery або executeUpdate.

2.6 Основні проблеми тестування баз даних

При тестуванні баз даних можна виконувати надзвичайно велику кількість можливих тестів. Однак у нашій роботі ми розглянемо лише найбільш основні види тестів, які цікавлять більшість користувачів.

При виході реляційних баз даних на ринок корпоративних пропозицій, до їх продуктивності стали пред'являти підвищені вимоги. Користувачі хотіли бути впевнені в тому, що вибрана ними СКБД не почне “задихатися” при збільшенні вимог додатків. Це занепокоєння користувачів, яка доповнювалась також зацікавленістю виробниками СКБД призвела до “холодної війни” за показники продуктивності між виробниками. Одних цікавила максимальна абсолютна продуктивність СКБД, інших - співвідношення ціна/продуктивність і відповідна економія коштів. У всіх випадках компанії рекламували контрольні тести, які доказували перевагу їх продукту над іншими, і робилися спроби дискредитувати контрольні тести інших виробників.

Перш за все контрольні тести розроблялися самими виробниками. Однак виробники самі були зацікавлені в найкращих результатах цих тестів, що приводило до спотворення реально існуючої інформації про продуктивності роботи їх продуктів. Пізніше з'явились два незалежних теста “Дебет/кредит” та ТР1. Перший з них виконував прості бухгалтерські транзакції, а другий - вимірював продуктивність OLTP-систем. Однак ці тести були достатньо простими, і тому виробникам не складало великих труднощів маніпулювати результатами отриманих тестів, щоб представити свої продукти в найкращому світлі. Як правило маніпулювання даними тестами полягало у використанні більш продуктивніших та більш сучасних комп'ютерах, специфічно представлених даних, якими наповнювалися таблиці та інші.

Спроби зробити результати тестів більш-менш стабільними та достовірними закінчились об'єднанням декількох виробників і консультантів по базах даних в організацію Transaction Processing Council, яка зайнялась створенням стандартного тесту для реляційних баз даних. Ця організація розробила серію офіційних контрольних тестів для реляційних баз даних, відомих як ТРС-А, ТРС-В, ТРС-С. Ця організація взяла на себе функцію збору, зберігання та публікації результатів контрольних тестів для різних СКБД, а також роботу по верифікації результатів тестів, про які інформують виробники СКБД.

Однак, ці тести як правило втрачаються за горою рекламних кампаній нових продуктів, і кінцеві користувачі, як правило, не мають реальних даних про продуктивність тієї чи іншої СКБД в специфічних умовах (адже організація ТРС не може фізично протестувати всі можливі варіанти поєднання СКБД та різних видів програмного забезпечення). Тому в цій роботі ми спробуємо навести результати тестування певних функцій найбільш поширених СКБД при роботі з технологіями сервлетів та JSP. Ще однією причиною виконання роботи являється те, що компанія ТРС випустила тільки beta версію свого тесту ТРС-W, який орієнтований на оцінку продуктивності тестуючої СКБД у поєднанні з Internet-додатками, які працюють з базами даних через WWW [3].

3. Робота з графікою в Java

В Java аплети можуть малюватися на екрані, використовуючи метод paint(). Оскільки сам аплет явно ніколи не викликає метод repaint(), то це необхідно здійснювати програмісту вручну, або підключити аплет до слухача подій, який забезпечить перемалювання аплету при настанні визначеної події. У аплета є три різних способи, які можна використати для малювання:

1. repaint(перемалювання) викликається в будь-який час, коли аплет повинен заново вивести своє зображення на екран.

2. update (обновлення) викликається методом repaint(), указуючи, що настав момент для обновлення зображення; стандартний метод update () призводить очистку зображення і викликає метод paint().

3. paint(малювання) призводить вивід зображення аплета у відведеному місці на екрані; методу paint() в якості параметра передається об'єкт Graphics, який аплет може використовувати для малювання різних фігур і зображень.

Пакет AWT підтримує широкий вибір графічних методів. Всі графічні елементи пов'язані з вікнами. Це може бути головне або дочірнє вікно атлета чи окреме вікно додатку [4].

В Java використовується звичайна система координат (х, у), де х - кількість екранних точок від лівої границі екрану, у - кількість від верхньої границі екрану. Лівому верхньому куту відповідають координати (0,0). Така система координат використовується практично у всіх графічних системах. Координати задаються в пікселях. Вся інформація виводиться на екран з допомогою графічного контексту (graphics context), який інкапсульований в класі Graphics і отримується двома способами:

1. Передається в аплет під час виклику одного з багаточисельних методів таких як paint() або update().

2. Повертається методом getGraphics().

В класі Graphics визначено деяку множину графічних функцій. Кожний графічний об'єкт може бути представлений як незаповнений, або заповнений в вигляді контура. Об'єкти відображаються і заповняються вибраним в даний момент кольором, а отже по замовчуванню - чорним. Якщо графічний об'єкт перевершує розмір вікна, то він автоматично обрізається.

Клас Graphics забезпечує засіб для малювання наступних об'єктів:

1. Прямих.

2. Прямокутників і багатокутників.

3. Еліпсів і кругів.

4. Дуг.

5. Графічних зображень.

6. Тексту (різними шрифтами) .

3.1 Зміна розміру графічних об'єктів

Часто приходиться задавати розмір графічних об'єктів таким чином, щоб він відповідав розміру вікна, в якому буде відображатися даний об'єкт. Для цього потрібно спочатку викликати метод size() вікна. Його синтаксис має вигляд Dimension size(). Даний метод повертає розмір вікна, інкапсульовані в об'єкті Dіmension. Знаючи даний розмір вікна, можна відповідним образом масштабувати графічний об'єкт [3].

Така технологія використовується в аплеті, яка спочатку представляє собою квадрат 200*200 пікселів, а потім може збільшуватися чи зменшуватися в результаті виникнення подій.

Для вказання аплету, що йому необхідно змінити свій розмір, існує метод resize(Dimension size). Він призначений для встановлення нового розміру вікна аплету, і автоматично викликає метод repaint().

3.2 Робота з кольорами в Java

Java підтримує роботу з кольором в режимі, не зважаючи від пристрою. Система кольорів пакета AWT дозволяє задавати будь-який бажаючий колір. Для цього вона знаходить найбільш відповідний колір з числа можливих для дисплея, на якому в даний момент працює програма чи аплет. Модель кольору HSB (Hue - відтінок, Saturation - насиченість,

Brightness - яскравість ) являється альтернативною моделлю RGB. Відтінок, насиченість і яскравість задаються числами в діапазоні від 0 до 1. 1 - відповідає світлому кольору, 0 - чорному. За допомогою методів GetRed, GetGreen, GetBlue можна отримати червоні, зелені і сині кольори. Синтаксис цих методів наступний:

int getRed()

int getGreen()

int getBlue()

Кожний з цих методів повертає RGB - складову кольору об'єкта Color в молодших восьми розрядах цілого числа.

3.2 Огляд компонентів Frame та Panel

Клас Frame інкапсулює елемент, який утримує рядок заголовку, меню, границі і механізм зміни розміру. Цей клас являється підкласом Window. Якщо об'єкт Frame створюється з атлета, то в ньому буде міститися попереджуюче повідомлення про те, що дане вікно створене аплетом. Це повідомлення попереджає користувачів про те, що вікно, яке вони бачать на екрані було отримано з допомогою аплета, а не програми, яка працює на їх комп'ютері.

Клас Panel є конкретним підкласом абстрактного підкласу Container. Він не містить нових методів, а лише реалізує методи класу Container. Panel можна представити собі як рекурсивний компонент екрану. Клас Panel являється суперкласом для класу Applet. Якщо вивід призначається аплету, то виводиться інформація, яка відображається на поверхні об'єкта Panel. Отже, панель - це вікно, яке не має рядка заголовка, меню і границі. Ось тому, при перегляді аплета з допомогою браузера ці елементи не видно. При запуску аплета з допомогою програми перегляду на екрані видно границі і заголовок, але вони відносяться лише до програми перегляду аплета.

До об'єкту Panel можна добавляти й інші компоненти з допомогою методу add(), після чого можна вручну змінювати їх положення та розмір на екрані з допомогою методів move(), resize() чи reshape() [3].

Список літератури

Холл М. Сервлеты и JavaServer Pages. Библиотека програмиста. - СПб.:Питер, 2001. - 496.

JavaServer Pages™ Specification version 2.0. - Sun Microsystems, 2003. - 765.

Грофф Дж., Вайнберг П. SQL: Полное руководство: Пер.с англ. -К BHV, 2001. - 816.

Вебер Д. Технология Java™ в подлиннике: Пер. с англ. - СПб.: BHV, 2000. - 1104.

Эккель Б. Философия Java. Библиотека програмиста. - СПб: Питер, 2001. - 880.

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.