Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package baza;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSetMetaData;
- import java.sql.SQLException;
- import java.sql.Statement;
- import java.sql.ResultSet;
- import java.util.Vector;
- import javax.swing.*;
- import javax.swing.table.AbstractTableModel;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- public class baza extends JPanel implements ActionListener {
- JTextField zapytanie = new JTextField();
- JTextField login = new JTextField();
- JLabel tablica = new JLabel("Komunikat z bazy danych", JLabel.CENTER);
- JPasswordField haslo = new JPasswordField();
- JButton wyslijZapytanie = new JButton("Zapytaj");
- JButton polacz = new JButton("Połącz");
- Model widok = new Model();//tworzymy nowy model klasy dziedziczacej po AbstractTableModel
- public String zap;// string wykorzystywany do wyswietlania komunikatow
- public baza()//konstuktor
- {
- Dimension wymiary = new Dimension(400, 180);
- Dimension wymiary1 = new Dimension(200, 80);//wymiary dla TextFieldow
- Dimension wymiary2 = new Dimension(65, 80);//wymiary dla TextFieldow
- // na poczatku musimy stworzyc nowa ramke//
- JFrame ramka = new JFrame();
- ramka.setTitle("Połączenie do bazy danych Oracle");
- Container kontener = ramka.getContentPane();
- ramka.setDefaultCloseOperation(ramka.EXIT_ON_CLOSE);
- ramka.setSize(wymiary);
- /*ustawienie wymiarow elementow */
- zapytanie.setMaximumSize(wymiary1);
- login.setMaximumSize(wymiary2);
- haslo.setMaximumSize(wymiary2);
- tablica.setMaximumSize(wymiary1);
- /*Tworzymy labele i ustawiamy co maja wyswietlac*/
- JLabel prosba = new JLabel("Zapytanie do bazy: ");
- JLabel Login = new JLabel("Login: ");
- JLabel Haslo = new JLabel("Haslo: ");
- /*dodajemy akcje do wyslijZapytanieow*/
- wyslijZapytanie.addActionListener(this);
- polacz.addActionListener(this);
- JTable tab = new JTable(widok);//tworzymy tabele, ktorej modelem jest klasa widok
- JScrollPane scrollPane = new JScrollPane(tab);//wkladamy tabele do JScrollPane
- scrollPane.setPreferredSize(wymiary);//wymiary JScrollPane
- tab.setFillsViewportHeight(true);
- /*poniewaz jest duzo elementow musimy je jakos porzadkowac
- uzyjemy do tego celu BoxLayout-u ktory jest bardziej przyjazny
- od GridBagLayout
- najpierw tworzymy 5 boxow poziomych, a nastepnie wkladamy je do
- jednego boxu pionowego
- */
- Box poziom1 = Box.createHorizontalBox();
- poziom1.add(Box.createHorizontalStrut(20));
- poziom1.add(scrollPane);
- poziom1.add(Box.createHorizontalStrut(20));
- Box poziom2 = Box.createHorizontalBox();
- poziom2.add(Login);
- poziom2.add(Box.createHorizontalStrut(10));
- poziom2.add(login);
- poziom2.add(Box.createHorizontalStrut(10));
- poziom2.add(Haslo);
- poziom2.add(Box.createHorizontalStrut(10));
- poziom2.add(haslo);
- poziom2.add(Box.createHorizontalStrut(10));
- poziom2.add(polacz);
- poziom2.add(Box.createHorizontalStrut(10));
- poziom2.add(tablica);
- Box poziom3 = Box.createHorizontalBox();
- poziom3.add(tablica);
- Box poziom4 = Box.createHorizontalBox();
- poziom4.add(prosba);
- poziom4.add(Box.createHorizontalStrut(10));
- poziom4.add(zapytanie);
- poziom4.add(Box.createHorizontalStrut(10));
- poziom4.add(wyslijZapytanie);
- Box pion = Box.createVerticalBox();
- pion.add(Box.createVerticalStrut(20));
- pion.add(poziom1);
- pion.add(Box.createVerticalStrut(20));
- pion.add(new JSeparator(JSeparator.HORIZONTAL),
- BorderLayout.LINE_START);
- pion.add(Box.createVerticalStrut(10));
- pion.add(poziom2);
- pion.add(Box.createVerticalStrut(10));
- pion.add(poziom3);
- pion.add(Box.createVerticalStrut(10));
- pion.add(poziom4);
- pion.add(Box.createVerticalStrut(10));
- pion.add(Box.createVerticalStrut(5));
- kontener.add(pion, BorderLayout.CENTER);
- ramka.setVisible(true);
- ramka.pack();
- }
- @SuppressWarnings("deprecation")
- public void actionPerformed(ActionEvent zdarzenie) {
- /*zaleznie od wyslijZapytanieu bedziemy podejmowali odpowiednia akcje */
- Object zrodlo = zdarzenie.getSource();
- if (zrodlo == wyslijZapytanie) {
- widok.zapytanie(zapytanie.getText().trim());
- } else if (zrodlo == polacz) {
- widok.init(login.getText().trim(), haslo.getText().trim());
- tablica.setText(widok.komunikat());
- }
- }
- public static void main(String[] args) {
- baza a = new baza();//tworzymy obiekt klasy baza
- }
- }
- class Model extends AbstractTableModel {
- Vector temp;
- Statement a;
- Connection polaczenie;
- String komunikat;
- int iloscKolumn;
- Model() //konstruktor
- {
- temp = new Vector();
- }
- String[] NazwaKolumny;
- public int getColumnCount() {
- return iloscKolumn;
- }
- public int getRowCount() {
- return temp.size();
- }
- public String getColumnName(int col) {
- return NazwaKolumny[col];
- }
- public Object getValueAt(int row, int col) {
- return ((String[]) temp.elementAt(row))[col];
- }
- public void init(String login, String haslo) {
- try {
- Class.forName("oracle.jdbc.driver.OracleDriver");
- System.out.println("Sterowniki załadowane");
- polaczenie = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:test", login, haslo);
- komunikat = "Połączenie nawiązane!";
- komunikat();
- a = polaczenie.createStatement();
- System.out.println("Połączenie nawiązane");
- } catch (Exception wyjatek) {
- System.out.println("Błąd");
- komunikat = "Błąd";
- komunikat();
- }
- }
- public void zapytanie(String zap) {
- try {
- temp = new Vector();
- ResultSet res = a.executeQuery(zap);
- ResultSetMetaData meta = res.getMetaData();
- iloscKolumn = meta.getColumnCount();
- NazwaKolumny = new String[iloscKolumn];
- for (int h = 1; h <= iloscKolumn; h++) {
- NazwaKolumny[h - 1] = meta.getColumnName(h);//
- }
- while (res.next()) {
- String[] record = new String[iloscKolumn];
- for (int i = 0; i < iloscKolumn; i++) {
- record[i] = res.getString(i + 1);
- }
- temp.addElement(record);
- }
- fireTableChanged(null);
- } catch (Exception wyjatek) {
- System.out.println("Błąd");
- }
- }
- public String komunikat() {
- return komunikat;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement