Оператор
|
Опис
|
Приклад
|
=
|
Рівність
|
surname='Іванов'
|
<>
(можливо також!=)
|
Нерівність
|
surname!='Іванов'
|
<,
>, <=, >=
|
Менше,
більше, менше рівно, більше рівно
|
age>=18
|
BETWEEN
|
Всі
значення що знаходяться між даними двома включно
|
BETWEEN 'Іванов' AND 'Петров'
|
LIKE
|
Порівняння
з шаблоном
|
surname
LIKE 'І % '
|
IN
|
Приймає
одне з перелічених значень
|
faculty
IN ('Кубик', 'Радіофак', 'Мехмат')
|
В шаблоні для LIKE можна
використовувати ' % ' як замінник для будь-якого числа будь-яких символів, та
'_' як замінник для довільного одного символа.
Також в умові можна
використовувати оператори OR, AND та NOT, та дужки.
Також до запиту SELECT
можна додати команду ORDER BY, що дозволяє впорядкувати результат за заданими
стовпцями. Щоб сортувати в зворотньому порядку після стовпців за якими сортують
пишуть DESC:
SELECT name FROM
students ORDER BY name DESC;
Варто також зауважити, що
ORDER BY не може стояти перед WHERE інакше будуть помилки.
2. INSERT
Оператор INSERT додає до
таблиці рядок. Має такий синтаксис:
INSERT INTO
назва_таблиці VALUES (список_значень);
Значення мають йти в
такому ж порядку, як і стопці таблиці. При необхідності можна задати конкретні
стовпці, та конкретні значення:
INSERT INTO
students(name) VALUES ('Іван');
Всі інші поля отримають
значення за замовчуванням.
3. DELETE
Найпростіший оператор:
DELETE FROM
назва_таблиці WHERE умова;
Знову ж таки, не варто забувати,
що немає команди «Відмінити».
Для видаленя всіх даних
використовують оператор truncate table
Отже для виконання
курсового проекту нам цілком вистачить ПК з наступними параметрами
. Процесор - Intel
Celeron 1,9 ГГц
. ОЗУ - 128 Мб
. Об’єм вільної пам’яті
- 50 Мб
. Об’єм графічної
пам’яті - 128Мб
. Перелік та призначення режимів та структура
діалогу
Проаналізувавши
постановку задачі, створивши математичну модель і знайшовши основні методи
вирішення завдання нам необхідно визначитися з інтерфейсом програми і засобами
діалогу з потенційним користувачем.
Отже, щоб непідготовлений
користувач міг використовувати наш програмний продукт, він повинен бути
оснащений простим меню. Тому доцільно розробити графічний інтерфейс із простим
і зрозумілим меню.
Так, як програма
міститиме три таблиці ми розробимо головне вікно, яке запускатиметься при
старті програми і даватиме змогу користувачеві вибрати, з якою із трьох таблиць
він хоче працювати.
Далі після вибору таблиці
користувач повинен бачити перед собою зручне і оформлене вікно для
безпосередньої робити з вхідними даними. Тому на цьому вікні буде розміщена
таблиця з вхідними даними і кнопки для вибору дії по обробці інформації.
Основними діями будуть:
. Завантажити дані
. Додати запис
. Видалити
. Зберегти
Вибір функції користувач
здійснюватиме шляхом патискання клавішею миші на відповідну кнопку
Функція 1 відповідає за
завантаження даних із зовнішньої БД в таблицю вікна програми.
Функція 2 відповідає за
додавання нового запису в таблицю
Функція 3 відповідає за видалення
вибраного запису з таблиці
Функція 4 відповідає за
збереження даних в зовнішню базу даних
Отже інтерфейс програми
не буде складним і кінцевий споживач зможе легко керувати нашим програмним
продуктом
. Опис компонентів програми і створення проекту
Опис компонентів програми
Побудувавши математичну
модель задачі і розробивши меню програми перейдемо до структури нашої
майбутньої програми.
Наша програма буде
створюватись на основі мви програмування високого рівня JAVA, використовуючи
компоненти Java SWING/
Java (вимовляється
Джава; інколи - Ява) - об'єктно-орієнтованамова програмування, випущена
компанією Sun Microsystems у1995 році як основний компонент платформи Java.
Зараз мовою займається компанія Oracle, яка придбала Sun Microsystems у2009
році. Синтаксис мови багато в чому схожий на C та C++. У офіційній реалізації
Java-програми компілюються у байт-код, який при виконанні інтерпретується
віртуальною машиною для конкретної платформи.надає компілятор Java та
віртуальну машину Java, які задовольняють специфікації Java Community Process,
під ліцензією GNU General Public License.
Мова значно запозичила
синтаксис із C і C++. Зокрема, взято за основу об'єктну модель С++, проте її
модифіковано. Усунуто можливість появи деяких конфліктних ситуацій, що могли
виникнути через помилки програміста та полегшено сам процес розробки
об'єктно-орієнтованих програм. Ряд дій, які в С/C++ повинні здійснювати
програмісти, доручено віртуальній машині. Передусім Java розроблялась як
платформо-незалежна мова, тому вона має менше низькорівневих можливостей для
роботи з апаратним забезпеченням. За необхідності таких дій java дозволяє
викликати підпрограми, написані іншими мовами програмування
Swing - інструментарій
для створення графічного інтерфейсу користувача (GUI) мовою програмування Java.
Це частина бібліотеки базових класів Java (JFC, Java Foundation
Classes).розробляли для забезпечення функціональнішого набору програмних
компонентів для створення графічного інтерфейсу користувача, ніж у ранішого
інструментарію AWT. Компоненти Swing підтримують специфічні
look-and-feelмодулі, що динамічно підключаються. Завдяки ним можлива емуляція
графічного інтерфейсу платформи (тобто до компоненту можна динамічно підключити
інші, специфічні для даної операційної системи вигляд і поведінку). Основним
недоліком таких компонентів є відносно повільна робота, хоча останнім часом це
не вдалося підтвердити через зростання потужності персональних комп'ютерів.
Позитивна сторона - універсальність інтерфейсу створених програм на всіх
платформах
Опишемо основні
компоненти Java Swing, що будуть використовуватись в нашій програмі:
1. Мітки
Мітка (JLabel) - це рядок
тексту або зображення, що розміщується в компоненті. Це один з найпростіших
компонентів графічного інтерфейсу. Вони дозволяють задавати вирівнювання тексту
(вправо, зліва, по-центру) в середині компонента та не мають особливих подій,
які б асоціювалися з ними.
Наступний код демонструє
різноманітні способи створення міток.
import javax.swing.
Icon;
import javax.swing.
ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.
SwingConstants;
public class Labels
{
public static
void main (String[] args) {frame = new LabelFrame();.setSize (150,
200);.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);.setVisible(true);
}
}
class LabelFrame
extends JFrame {
// створюємо панельpanel=new
JPanel();
() {
// вирівнювання за
замовчуванням (CENTER)label1 = new JLabel («Багато левів,»);
// вирівнювання
влівоlabel2 = new JLabel («тигрів з тигрицями», SwingConstants.LEFT);
// мітка без тексту,
вирівнювання за замовчуваннямlabel3 = new JLabel();
// створюємо іконкуicon =
new ImageIcon («icon.gif»);
// створюємо мітку із
зображеннямlabel4 = new JLabel(icon);
// задаємо текст для
label3.setText («і ведмедів»);
// встановлюємо
вирівнювання.setHorizontalAlignment (SwingConstants.RIGHT);
// додаємо мітки в
панель.add(label1);.add(label2);.add(label3);.add(label4);
// додаємо панель у фрейм
this.add(panel);
}
}
2. Кнопки
Кнопки вже
застосовувалися раніше у прикладах. У Swing їх реалізовує компонент JButton.
Кнопка генерує подію ActionEvent, коли на неї натискають. Щоб обробити цю подію
в програмі реєструється відповідний обробник ActionListener, який повинен
реалізовувати метод actionPerformed(). Метод actionPerformed отримує в якості
аргумента подію, що відбулася. Крім мітки на кнопці може бути розміщене
зображення. Клас JButton має відповідний конструктор для задання напису,
зображення або обох зразу. Завантаження зображення здійснює зручний у
використанні клас ImageIcon. Наступний приклад демонструє створення кнопки із
зображенням та обробки події натиснення кнопки.
java.awt. FlowLayout;
import java.awt.event.
ActionEvent;
import java.awt.event.
ActionListener;
import javax.swing.
Icon;
import javax.swing. ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class PictureButton
{
public static
void main (String[] args) {frame = new ButtonFrame();.setSize (300,
100);.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);.setVisible(true);
}
}
class ButtonFrame
extends JFrame {
label=new
JLabel();i=0;
() {icon = new
ImageIcon («icon.gif»);button = new JButton(icon);
// додаємо обробник
подій, що визначається у внутрішньому класі.addActionListener (new
ActionListener() {
public void
actionPerformed (ActionEvent ae) {++;.setText («Натиснуто разів: «+ i);
}
});
// встанолюємо менеджер
розташування(new FlowLayout());(button);(label);
}
}
3. Таблиця
Дуже часто виникає
необхідність в додатках показати дані у вигляді таблиці з певною кількістю
рядків і стовпців. У Java Swing для відображення табличних даних
використовується комопнент JTable. JTable всередині себе не містить дані, а
служить тільки для їх відображення.
Розглянемо простий
приклад створення і використання таблиці. Для цього ми створимо таблицю,
заповнимо її тестовими даними і розмістимо на панелі прокрутки. Розміщення
таблиці на панелі прокрутки - це звичайна практика, тому що це зручно і
красиво.
Існує кілька способів того,
як сказати JTable, які дані і стовпці відображувати. Тут ми розглянемо
найпростіший спосіб. Для початку визначимо, які стобци ми хочемо показувати в
таблиці. Для прикладу я взяв стовпці провідника Windows - Name (Ім'я файлу або
папки), Last modified (Дата останньої модифікації), Type (Тип) і Size (Розмір).
Створення проекту
Розібравшись з основними
компонентами нашої майбутньої програми можна приступити до її програмування. Як
було сказано вище програма буде створюватись за допомогою мови програмування
Java. Середовище для програмування ми використовуватимемо NetBeans IDE 8.1. Для
початку програмування потрібно запустити дане середовище і за допомогою вкладок
Файл-> Cоздать проекти, створити новий прект. Пысля вибраних дій перед нами
з'явиться вікно де ми вибираєм Приложение Java. Пысля цього перед нами
выдкриэться середовище програмуваня де ми можемо вводити код програми. Лістинг
програми наведений у додатку А, B, C, D
Вікно середовища
програмування NetBeans IDE 8.1
. Опис програми і тестування програми
Після запрограмування
нашого проекту його необхідно відкомпілювати. Для цього натискаємо клавішу F6.
Якщо програма не містить помилок то компілятор видасть повідомлення про успішне
завершення і запустить наш проект на виконання. Тут ми вже зможемо протестувати
створену програму. Тестування повинне забезпечити перевірку працездатності
функцій для всіх варіантів вхідних даних.
Наша програма
розпочинатиметься виводом на екран монітора комп’ютера меню проекта. Тут перед
нами з’явиться вікно, в якому ми зможемо вибрати таблицю, з якою будем
працювати. Початкове вікно нашої програми зображено на рис.
Головне вікно програми
Тут нам запропоноавоно
три таблиці, це: замовники, продукція, постачальники. Для прикладу виберемо
таблицю «Продукція». Для вибору цієї таблиці просто натискаєс правою клавішою
миші на відповідному надписі. Після натиснення клавіши відкриється нове вікна.
Вікно програми таблиці Продукції
На даному вікні в таблиці
відсутня інформація. Щоб отримати дані про продукцію з зовнішньої бази даних
необхідно натиснути на кнопку «Завантажити дані». Після цього наша таблиця
заповниться інформацією. На рисунку зображено вікно із завантаженими даними
Вікно програми таблиці
Продукції із завантаженими даними
Після завантаження даних
ми можемо виконати ряд дій по роботі з заданою таблицею, зокрема: видаляти
дані, додавати нові записи, зберігати дані у зовнішню БД. Для прикладу
перевіремо роботу функції видалення запису. Для цього виділемо рядок з даними,
який ми хочемо видалити і натиснемо кнопку «видалити». Результат зображено на
рис.
Вікно програми таблиці
Продукції видалення даних
Як ми бачимо у нас зник
перший рядок. Отже видалення даних спрацювало. Тепер додамо в нашу таблицю
новий запис. Для цього потрыбно натиснути кнопку «Додати запис». Перед нами
з'явиться вікно куди потрібно ввести дані.
Вікно введення даних
Після введення нових
даних вони відображатимуться в нашій таблиці.
Вікно з введеними даними
Після завершення роботи з
програмою натискаємо кнопку зберегти і закриваємо всі вікна.
Провівши тестування
створеної програми можна зробити висновок, що програма працює без помилок і
забезпечує повноцінну роботу при будь=яких вхідних даних. А також здійснює
збереження даних без втрат.
Висновок
В ході виконання завдання
курсової роботи мною було розроблено проект програми автоматизації роботи
фірми, що займається продажем комп’ютерних комплектуючих. В програмі реалізовані
три таблиці:
. Наявність -
містить інформацію про предмети, які є наявні а складі. Тут будуть визначені
наступні поля:
· ID - унікальний
код продукту
· Name - назва
моделі продукту
· Type - тип
продукту
· Cost - ціна за
одиницю продукції
· Count - кількість
штук продукції на складі.
. Постачальники -
містить інформацію про постачальників продукції фірмі, що займається продажем.
Поля даної таблиці:
· ID - унікльний
код постачальника
· Name -
найменування фірми постачальника
· Type - тип
постачальної продукції
· Adress - юридична
адреса постачальника
· Tell - номер
телефона фірми постачальника
. Замовлення -
містить інформацію про здійснені замовлення на купівлю товару. Поля:
· ID - унікальний
код замовника
· PIB - Прізвище,
ім’я, по-батькові замовника
· Adress - адреса
замовлення
· Tell - контактний
номер телефона
Програма повноцінно
працює при будь-яких вхідних даних і може бути впроваджена у виробництво і
застосовуватись компаніями, що займаються даним видом роботи.
Список використаної літератури
1. Matthew Robinson, Pavel Vorobiev: Swing,
Second Edition, Manning, ISBN 1-930110-88-X
2. David M. Geary: Graphic Java 2, Volume 2:
Swing, Prentice Hall, ISBN 0-13-079667-0
. John Zukowski: The Definitive Guide to
Java Swing, Third Edition, Apress, ISBN 1-59059-447-9
. James Elliott, Robert Eckstein, Marc
Loy, David Wood, Brian Cole: Java Swing, O'Reilly, ISBN 0-596-00408-7
. Kathy Walrath, Mary Campione, Alison
Huml, Sharon Zakhour: The JFC Swing Tutorial: A Guide to Constructing GUIs,
Addison-Wesley Professional, ISBN 0-201-91467-0
. Joshua Marinacci, Chris Adamson: Swing
Hacks, O'Reilly, ISBN 0-596-00907-0
. Герберт Шилдт: SWING: руководство для
начинающих. - М.: «Вильямс», 2007. - С. 704. - ISBN 0-07-226314-8
. Иван Портянкин: Swing: Эффектные
пользовательские интерфейсы, Санкт-Петербург ISBN 5-469-00005-2
Додаток А
Лістинг Main форми
javaapplication2;
class Main extends
javax.swing.JFrame {
/**
* Creates new form Main
*/Main() {();
}
@SuppressWarnings
(«unchecked»)
// <editor-fold
defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {
= new
javax.swing.JLabel();= new javax.swing.JPanel();= new javax.swing.JLabel();=
new javax.swing.JLabel();= new javax.swing.JLabel();
(javax.swing.
WindowConstants.EXIT_ON_CLOSE);
.setFont (new java.awt.
Font («Times New Roman», 1, 24)); // NOI18N.setText («Фірма комп'ютерних
комплектуючих»);
.setFont (new java.awt.
Font («Times New Roman», 0, 18)); // NOI18N.setText
(«Замовники»);.addMouseListener (new java.awt.event. MouseAdapter() {void
mouseClicked (java.awt.event. MouseEvent evt) {(evt);
}
});
.setFont (new java.awt.
Font («Times New Roman», 0, 18)); // NOI18N.setText
(«Продукція»);.addMouseListener (new java.awt.event. MouseAdapter() {void
mouseClicked (java.awt.event. MouseEvent evt) {click(evt);
}
});
.setFont (new java.awt.
Font («Times New Roman», 0, 18)); // NOI18N.setText
(«Постачальники»);.addMouseListener (new java.awt.event. MouseAdapter() {void
mouseClicked (java.awt.event. MouseEvent evt) {click(evt);
}
});
javax.swing. GroupLayout jPanel1Layout
= new javax.swing.
GroupLayout(jPanel1);.setLayout(jPanel1Layout);Layout.setHorizontalGroup
(Layout.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(jPanel1Layout.createSequentialGroup()(109, 109,
109)(jPanel1Layout.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(javax.swing. GroupLayout. Alignment.TRAILING,
jPanel1Layout.createSequentialGroup()(javax.swing. LayoutStyle.
ComponentPlacement.RELATED, 17, javax.swing.
GroupLayout.PREFERRED_SIZE)(jPanel1Layout.createParallelGroup (javax.swing.
GroupLayout. Alignment.LEADING)(jLabel3)(jLabel2))(17, 17, 17))(jLabel4))(115,
Short.MAX_VALUE))
);Layout.setVerticalGroup
(Layout.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(jPanel1Layout.createSequentialGroup()()(jLabel2)(18, 18,
18)(jLabel3)(18, 18, 18)(jLabel4)(20, Short.MAX_VALUE))
);
.swing. GroupLayout
layout = new javax.swing. GroupLayout
(getContentPane());().setLayout(layout);.setHorizontalGroup (.createParallelGroup
(javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(layout.createParallelGroup
(javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(29, 29,
29)(jLabel1))(layout.createSequentialGroup()(62, 62, 62)(jPanel1, javax.swing.
GroupLayout.PREFERRED_SIZE, javax.swing. GroupLayout.DEFAULT_SIZE, javax.swing.
GroupLayout.PREFERRED_SIZE)))(25, Short.MAX_VALUE))
);.setVerticalGroup
(.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()()(jLabel1)(34,
34, 34)(jPanel1, javax.swing. GroupLayout.PREFERRED_SIZE, javax.swing.
GroupLayout.DEFAULT_SIZE, javax.swing. GroupLayout.PREFERRED_SIZE)(34,
Short.MAX_VALUE))
);
();
} // </editor-fold>
void click
(java.awt.event. MouseEvent evt) {NewJFrame1 ().setVisible(true); // TODO add
your handling code here:
}
void jLabel3click
(java.awt.event. MouseEvent evt) {NewJFrame().setVisible(true); // TODO add
your handling code here:
}
void jLabel4click
(java.awt.event. MouseEvent evt) {NewJFrame2 ().setVisible(true); // TODO add
your handling code here:
}
/**
* @param args the command
line arguments
*/static void main
(String args[]) {
/* Set the Nimbus look
and feel */
// <editor-fold
defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>
/* If Nimbus (introduced
in Java SE 6) is not available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/{(javax.swing.UIManager.
LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels())
{(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel
(info.getClassName());;
}
}
} catch
(ClassNotFoundException ex) {.util.logging. Logger.getLogger
(Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch
(InstantiationException ex) {.util.logging. Logger.getLogger
(Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch
(IllegalAccessException ex) {.util.logging. Logger.getLogger (Main.class.getName()).log
(java.util.logging. Level.SEVERE, null, ex);
} catch (javax.swing.
UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger
(Main.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
}
// </editor-fold>
/* Create and display the
form */.awt. EventQueue.invokeLater (new Runnable() {void run()
{Main().setVisible(true);
}
});
}
// Variables declaration
- do not modifyjavax.swing.JLabel jLabel1;javax.swing.JLabel
jLabel2;javax.swing.JLabel jLabel3;javax.swing.JLabel
jLabel4;javax.swing.JPanel jPanel1;
// End of variables
declaration
}
Додаток Б
Лістинг NewJFrame форми
package javaapplication2;
java.sql.
Connection;java.sql. DriverManager;java.sql.
ResultSet;java.sql.SQLException;java.sql. Statement;javax.swing.table.
DefaultTableModel;javax.swing.JOptionPane;
class NewJFrame extends
javax.swing.JFrame {
connection;stmt;rs;model
= new DefaultTableModel();[] row = new Object[5];
NewJFrame() {();
}
@SuppressWarnings
(«unchecked»)
// <editor-fold
defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {=
new javax.swing.JScrollPane();= new javax.swing.JTable();= new
javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();=
new javax.swing.JButton();= new javax.swing.JButton();
(javax.swing.
WindowConstants.EXIT_ON_CLOSE);
.setModel (new
javax.swing.table. DefaultTableModel (Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},String [] {
«Title 1», «Title 2»,
«Title 3», «Title 4»
}
));.setViewportView(jTable1);
.setText («Завантажити
дані»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
jButton2.setText
(«Видалити»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText (» Додати
запис»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText
(«Зберегти»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText («Закрити»);
.swing. GroupLayout
layout = new javax.swing. GroupLayout
(getContentPane());().setLayout(layout);.setHorizontalGroup
(.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(jButton1)(18, 18, 18)(jButton2)(18,
18, 18)(jButton3)(18, 18, 18)(jButton4)(18, 18, 18)(jButton5))(jScrollPane1)
);.setVerticalGroup
(.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(5, 5, 5)(jScrollPane1,
javax.swing. GroupLayout.DEFAULT_SIZE, 362, Short.MAX_VALUE)(javax.swing.
LayoutStyle. ComponentPlacement.RELATED)(layout.createParallelGroup
(javax.swing. GroupLayout.
Alignment.BASELINE)(jButton1)(jButton2)(jButton3)(jButton4)(jButton5))())
);
pack();
} // </editor-fold>
void
jButton1ActionPerformed (java.awt.event. ActionEvent evt) {
{
errMessage =
null;{.forName («org.postgresql. Driver»).newInstance();=
DriverManager.getConnection (
«jdbc:postgresql://localhost:5432/new1»,
«postgres», «123321»);query = «select * from prod»;=
connection.createStatement();= stmt.executeQuery(query);{i=-1;[] columns
={«ID», «Назва», «Тип», «Ціна», «Кількість»};
.setColumnIdentifiers(columns);.jTable1.setModel(model);
(rs.next())
{+=1;[0]=rs.getString
(«ID»);[1]=rs.getString («name»);[2]=rs.getString («type»);[3]=rs.getString
(«cost»);[4]=rs.getString («count»);.addRow(row);.out.println (rs.getString(1)
+ «\t» + rs.getString(2)
+ «\t»);
}.close();
} catch (SQLException e)
{= e.getMessage();.out.println(errMessage);
}
} catch (Exception e) {=
e.getMessage();.out.println(errMessage);
}
}
}
void
jButton2ActionPerformed (java.awt.event. ActionEvent evt) {sel=
this.jTable1.getSelectedRow();(sel>=0)
{.removeRow(sel);
}
}
void
jButton3ActionPerformed (java.awt.event. ActionEvent evt) {[0]=JOptionPane.showInputDialog
(«Введіть ID товару»);[1]=JOptionPane.showInputDialog («Введіть назву
товару»);[2]=JOptionPane.showInputDialog («Введітьтип
товару»);[3]=JOptionPane.showInputDialog («Введіть ціну
товару»);[4]=JOptionPane.showInputDialog («Введіть к-сть товару»);.addRow(row);
}
void
jButton4ActionPerformed (java.awt.event. ActionEvent evt) {errMessage =
null;{.forName («org.postgresql. Driver»).newInstance();=
DriverManager.getConnection («jdbc:postgresql://localhost:5432/new1»,
«postgres», «123321»);= connection.createStatement();{i=0;end =
this.jTable1.getRowCount();query = «truncate table
prod»;.execute(query);(i<=end)
{= «INSERT INTO prod (\
«ID\», \ «Name\», \ «Type\», \ «Cost\», \ «Count\») VALUES
('»+this.jTable1.getValueAt (i, 0)+» ', '»
+this.jTable1.getValueAt
(i, 1)+» ', ' «+this.jTable1.getValueAt (i, 2)+» ', ' «+this.jTable1.getValueAt
(i, 3)+» ', '»
+this.jTable1.getValueAt
(i, 4)+ «')»;.out.println(query);.execute(query);+=1;
}.close();
// stmt.close();
} catch (SQLException e)
{= e.getMessage();.out.println(errMessage);
}
}
}
/**
* @param args the command
line arguments
*/static void main
(String args[]) {
/* Set the Nimbus look
and feel */
// <editor-fold
defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>
/* If Nimbus (introduced
in Java SE 6) is not available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/{(javax.swing.UIManager.
LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels())
{(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel
(info.getClassName());;
}
}
} catch
(ClassNotFoundException ex) {.util.logging. Logger.getLogger (NewJFrame.class.getName()).log
(java.util.logging. Level.SEVERE, null, ex);
} catch
(InstantiationException ex) {.util.logging. Logger.getLogger
(NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch
(IllegalAccessException ex) {.util.logging. Logger.getLogger
(NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch (javax.swing.
UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger
(NewJFrame.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
}
// </editor-fold>
/* Create and display the
form */.awt. EventQueue.invokeLater (new Runnable() {void run() {
// new
NewJFrame().setVisible(true);Main().setVisible(true);
}
});
}
// Variables declaration
- do not modifyjavax.swing.JButton jButton1;javax.swing.JButton
jButton2;javax.swing.JButton jButton3;javax.swing.JButton
jButton4;javax.swing.JButton jButton5;javax.swing.JScrollPane
jScrollPane1;javax.swing.JTable jTable1;
// End of variables
declaration
}
Додаток В
Лістинг NewJFrame1 форми
package javaapplication2;
java.sql.
Connection;java.sql. DriverManager;java.sql.
ResultSet;java.sql.SQLException;java.sql. Statement;javax.swing.table.
DefaultTableModel;javax.swing.JOptionPane;
class NewJFrame1 extends
javax.swing.JFrame {
connection;stmt;rs;model
= new DefaultTableModel();[] row = new Object[4];
NewJFrame1 () {();
}
/**
* This method is called
from within the constructor to initialize the form.
* WARNING: Do NOT modify
this code. The content of this method is always
* regenerated by the Form
Editor.
*/
@SuppressWarnings
(«unchecked»)
// <editor-fold
defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {
= new javax.swing.JScrollPane();=
new javax.swing.JTable();= new javax.swing.JButton();= new
javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();=
new javax.swing.JButton();
(javax.swing.
WindowConstants.EXIT_ON_CLOSE);
.setModel (new
javax.swing.table. DefaultTableModel (Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},String [] {
«Title 1», «Title 2»,
«Title 3», «Title 4»
}
));.setViewportView(jTable1);
jButton5.setText
(«Закрити»);
.setText
(«Зберегти»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText (» Додати
запис»);.addActionListener (new java.awt.event. ActionListener() {void actionPerformed
(java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText
(«Видалити»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText («Завантажити
дані»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
javax.swing. GroupLayout
layout = new javax.swing. GroupLayout (getContentPane());().setLayout(layout);.setHorizontalGroup
(.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(jButton1)(18, 18,
18)(jButton2)(18, 18, 18)(jButton3)(18, 18, 18)(jButton4)(18, 18,
18)(jButton5))(jScrollPane1)
);.setVerticalGroup
(.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(5, 5, 5)(jScrollPane1,
javax.swing. GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE)(javax.swing.
LayoutStyle. ComponentPlacement.RELATED)(layout.createParallelGroup
(javax.swing. GroupLayout.
Alignment.BASELINE)(jButton1)(jButton2)(jButton3)(jButton4)(jButton5))())
);
();
} // </editor-fold>
void
jButton4ActionPerformed (java.awt.event. ActionEvent evt) {errMessage =
null;{.forName («org.postgresql. Driver»).newInstance();=
DriverManager.getConnection («jdbc:postgresql://localhost:5432/new1»,
«postgres», «123321»);= connection.createStatement();{i=0;end =
this.jTable1.getRowCount();query = «truncate table
zamov»;.execute(query);(i<=end)
{= «INSERT INTO prod (\
«ID\», \ «PIB\», \ «adress\», \ «tell\») VALUES ('»+this.jTable1.getValueAt (i,
0)+» ', '»
+this.jTable1.getValueAt
(i, 1)+«', ' «+this.jTable1.getValueAt (i, 2)+» ', ' «+this.jTable1.getValueAt
(i, 3)+» ')»;.out.println(query);.execute(query);+=1;
}.close();
} catch (SQLException e)
{= e.getMessage();.out.println(errMessage);
}
} catch (Exception e) {=
e.getMessage();.out.println(errMessage);
}
}
void
jButton3ActionPerformed (java.awt.event. ActionEvent evt)
{[0]=JOptionPane.showInputDialog («Введіть ID замовника»);[1]=JOptionPane.showInputDialog
(«Введіть ПІБ»);[2]=JOptionPane.showInputDialog («Введіть
Адресу»);[3]=JOptionPane.showInputDialog («Введіть телефон
замовника»);.addRow(row);
}
void
jButton2ActionPerformed (java.awt.event. ActionEvent evt) {sel=
this.jTable1.getSelectedRow();(sel>=0)
{.removeRow(sel);
}
}
private void
jButton1ActionPerformed (java.awt.event. ActionEvent evt) {
{
errMessage =
null;{.forName («org.postgresql. Driver»).newInstance();=
DriverManager.getConnection (
«jdbc:postgresql://localhost:5432/new1»,
«postgres», «123321»);query = «select * from zamov»;=
connection.createStatement();= stmt.executeQuery(query);{i=-1;[] columns
={«ID», «ПІБ», «Адреса», «Телефон»};
.setColumnIdentifiers(columns);.jTable1.setModel(model);
(rs.next())
{+=1;[0]=rs.getString
(«ID»);[1]=rs.getString («PIB»);[2]=rs.getString («adress»);[3]=rs.getString
(«tell»);.addRow(row);.out.println (rs.getString(1)
+ «\t» + rs.getString(2)
+ «\t»);
}.close();
} catch (SQLException e)
{= e.getMessage();.out.println(errMessage);
}
} catch (Exception e) {=
e.getMessage();.out.println(errMessage);
}
}
}
/**
* @param args the command
line arguments
*/static void main
(String args[]) {
/* Set the Nimbus look
and feel */
// <editor-fold
defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>
/* If Nimbus (introduced
in Java SE 6) is not available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/{(javax.swing.UIManager.
LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels())
{(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel
(info.getClassName());;
}
}
} catch
(ClassNotFoundException ex) {.util.logging. Logger.getLogger (NewJFrame1.class.getName()).log
(java.util.logging. Level.SEVERE, null, ex);
} catch
(InstantiationException ex) {.util.logging. Logger.getLogger
(NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch
(IllegalAccessException ex) {.util.logging. Logger.getLogger
(NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch (javax.swing.
UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger
(NewJFrame1.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
}
// </editor-fold>
/* Create and display the
form */.awt. EventQueue.invokeLater (new Runnable() {void run() {
// new NewJFrame1
().setVisible(true);
}
});
}
// Variables declaration
- do not modifyjavax.swing.JButton jButton1;javax.swing.JButton
jButton2;javax.swing.JButton jButton3;javax.swing.JButton
jButton4;javax.swing.JButton jButton5;javax.swing.JScrollPane
jScrollPane1;javax.swing.JTable jTable1;
// End of variables
declaration
}
Додаток Г
Лістинг NewJFrame2 форми
package javaapplication2;
java.sql.
Connection;java.sql. DriverManager;java.sql.
ResultSet;java.sql.SQLException;java.sql. Statement;javax.swing.table.
DefaultTableModel;javax.swing.JOptionPane;
class NewJFrame2 extends
javax.swing.JFrame {
connection;stmt;rs;model
= new DefaultTableModel();[] row = new Object[5];
NewJFrame2 () {();
}
/**
* This method is called
from within the constructor to initialize the form.
* WARNING: Do NOT modify
this code. The content of this method is always
* regenerated by the Form
Editor.
*/
@SuppressWarnings
(«unchecked»)
// <editor-fold
defaultstate= «collapsed» desc= «Generated Code»>void initComponents() {
= new
javax.swing.JScrollPane();= new javax.swing.JTable();= new
javax.swing.JButton();= new javax.swing.JButton();= new javax.swing.JButton();=
new javax.swing.JButton();= new javax.swing.JButton();
(javax.swing.
WindowConstants.EXIT_ON_CLOSE);
.setModel (new
javax.swing.table. DefaultTableModel (Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},String [] {
«Title 1», «Title 2»,
«Title 3», «Title 4»
}
));.setViewportView(jTable1);
jButton1.setText
(«Завантажити дані»);.addActionListener (new java.awt.event. ActionListener()
{void actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText
(«Видалити»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText (» Додати
запис»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText
(«Зберегти»);.addActionListener (new java.awt.event. ActionListener() {void
actionPerformed (java.awt.event. ActionEvent evt) {ActionPerformed(evt);
}
});
.setText («Закрити»);
javax.swing. GroupLayout
layout = new javax.swing. GroupLayout
(getContentPane());().setLayout(layout);.setHorizontalGroup
(.createParallelGroup (javax.swing. GroupLayout. Alignment.LEADING)(layout.createSequentialGroup()(jButton1)(18,
18, 18)(jButton2)(18, 18, 18)(jButton3)(18, 18, 18)(jButton4)(18, 18,
18)(jButton5))(jScrollPane1)
);.setVerticalGroup
(.createParallelGroup (javax.swing. GroupLayout.
Alignment.LEADING)(layout.createSequentialGroup()(5, 5, 5)(jScrollPane1,
javax.swing. GroupLayout.DEFAULT_SIZE, 255, Short.MAX_VALUE)(javax.swing.
LayoutStyle. ComponentPlacement.RELATED)(layout.createParallelGroup
(javax.swing. GroupLayout. Alignment.BASELINE)(jButton1)(jButton2)(jButton3)(jButton4)(jButton5))())
);
();
} // </editor-fold>
void
jButton1ActionPerformed (java.awt.event. ActionEvent evt) {
{
errMessage =
null;{.forName («org.postgresql. Driver»).newInstance();=
DriverManager.getConnection (
«jdbc:postgresql://localhost:5432/new1»,
«postgres», «123321»);query = «select * from post»;=
connection.createStatement();= stmt.executeQuery(query);{i=-1;[] columns
={«ID», «Назва», «Тип», «Адреса», «Телефон»};
.setColumnIdentifiers(columns);.jTable1.setModel(model);
(rs.next())
{+=1;[0]=rs.getString
(«ID»);[1]=rs.getString («name»);[2]=rs.getString («type»);[3]=rs.getString
(«adress»);[4]=rs.getString («tell»);.addRow(row);.out.println (rs.getString(1)
+ «\t» + rs.getString(2)
+ «\t»);
}.close();
} catch (SQLException e)
{= e.getMessage();.out.println(errMessage);
}
} catch (Exception e) {=
e.getMessage();.out.println(errMessage);
}
}
}
void
jButton2ActionPerformed (java.awt.event. ActionEvent evt) {sel=
this.jTable1.getSelectedRow();(sel>=0)
{.removeRow(sel);
}
}void
jButton3ActionPerformed (java.awt.event. ActionEvent evt)
{[0]=JOptionPane.showInputDialog («Введіть ID
постачальника»);[1]=JOptionPane.showInputDialog («Введіть назву фірми
постачальника»);[2]=JOptionPane.showInputDialog («Введіть тип товару, який постачає
постачальник»);[3]=JOptionPane.showInputDialog («Введіть адресу
постачальника»);[4]=JOptionPane.showInputDialog («Введіть контактний телефон
постачальника»);.addRow(row);
}
void
jButton4ActionPerformed (java.awt.event. ActionEvent evt) {errMessage =
null;{.forName («org.postgresql. Driver»).newInstance();=
DriverManager.getConnection («jdbc:postgresql://localhost:5432/new1»,
«postgres», «123321»);= connection.createStatement();{i=0;end =
this.jTable1.getRowCount();query = «truncate table post»;.execute(query);(i<=end)
{= «INSERT INTO post (\
«ID\», \ «name\», \ «type\», \ «adress\», \ «tell\») VALUES
('»+this.jTable1.getValueAt (i, 0)+» ', '»
+this.jTable1.getValueAt
(i, 1)+» ', ' «+this.jTable1.getValueAt (i, 2)+» ', ' «+this.jTable1.getValueAt
(i, 3)+» ', '»
+this.jTable1.getValueAt
(i, 4)+ «')»;.out.println(query);.execute(query);+=1;
}.close();
// stmt.close();
} catch (SQLException e)
{= e.getMessage();.out.println(errMessage);
}
} catch (Exception e) {=
e.getMessage();.out.println(errMessage);
}
}
/**
* @param args the command
line arguments
*/static void main
(String args[]) {
/* Set the Nimbus look
and feel */
// <editor-fold
defaultstate= «collapsed» desc=» Look and feel setting code (optional) «>
/* If Nimbus (introduced
in Java SE 6) is not available, stay with the default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/{(javax.swing.UIManager.
LookAndFeelInfo info: javax.swing.UIManager.getInstalledLookAndFeels())
{(«Nimbus».equals (info.getName())) {.swing.UIManager.setLookAndFeel
(info.getClassName());;
}
}
} catch
(ClassNotFoundException ex) {.util.logging. Logger.getLogger
(NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch (InstantiationException
ex) {.util.logging. Logger.getLogger (NewJFrame2.class.getName()).log
(java.util.logging. Level.SEVERE, null, ex);
} catch
(IllegalAccessException ex) {.util.logging. Logger.getLogger
(NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
} catch (javax.swing.
UnsupportedLookAndFeelException ex) {.util.logging. Logger.getLogger
(NewJFrame2.class.getName()).log (java.util.logging. Level.SEVERE, null, ex);
}
// </editor-fold>
/* Create and display the
form */.awt. EventQueue.invokeLater (new Runnable() {void run() {
//new NewJFrame2
().setVisible(true);
}
});
}
// Variables declaration
- do not modifyjavax.swing.JButton jButton1;javax.swing.JButton
jButton2;javax.swing.JButton jButton3;javax.swing.JButton jButton4;javax.swing.JButton
jButton5;javax.swing.JScrollPane jScrollPane1;javax.swing.JTable jTable1;
// End of variables
declaration
}