Sa ovom klasom vadim podatke iz baze:
Code:
package poslodavac.izlaz;
import poslodavac.tabela.tabelaP;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
public class izlazP extends AbstractTableModel
{
protected static int numRows = 0;
static String[] names = {("Ime i Prezime"), ("Naziv Firme"), ("Home Page"), ("Email"), ("Telefon"), ("Sediste Firme"), ("Zanimanje"), ("Datum Upisa"), ("Napomena")};
protected Object[][] data;
static ResultSet rset;
static Connection conn;
static String jdbcURL = "jdbc:mysql://localhost/svrle";
static String username = "root";
static String password = "";
public izlazP()
{
data = new Object[100][names.length];
try
{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Driver for JDBC isn't found in it's directory! Check if you have installed the JDBC and MySQL!", "Driver not found!", JOptionPane.OK_OPTION);
System.err.println("Ha, ha! Database error!");
e.printStackTrace();
}
read();
}
public synchronized void read()
{
try
{
conn=DriverManager.getConnection(jdbcURL, username, password);
Statement stat = conn.createStatement();
rset = stat.executeQuery("SELECT * FROM poslodavac");
while(rset.next())
{
data[numRows][0]=rset.getString(1);
data[numRows][1]=rset.getString(2);
data[numRows][2]=rset.getString(3);
data[numRows][3]=rset.getString(4);
data[numRows][4]=rset.getString(5);
data[numRows][5]=rset.getString(6);
data[numRows][6]=rset.getString(7);
data[numRows][7]=rset.getString(8);
data[numRows][8]=rset.getString(9);
numRows++;
}
stat.close();
conn.close();
} catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "Read table error!", JOptionPane.OK_OPTION);
System.out.println("DBase error!");
e.printStackTrace();
}
fireTableDataChanged();
}
// public synchronized void perdel(int[] arr)
// {
// for (int k=arr.length-1; k>=0; k--)
// {
// for(int j=arr[k]; j<numRows; j++)
// {
// for (int i=0; i<names.length; i++)
// {
// data[j][i]=data[j+1][i];
// }
// }
// }
// numRows-=arr.length;
// fireTableDataChanged();
// }
public synchronized String getColumnName(int column)
{
return names[column];
}
public int getColumnCount()
{
return names.length;
}
public synchronized int getRowCount()
{
return numRows;// = data.length;
}
public synchronized Object getValueAt(int row, int column)
{
return data[row][column];
}
}
package poslodavac.izlaz;
import poslodavac.tabela.tabelaP;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
public class izlazP extends AbstractTableModel
{
protected static int numRows = 0;
static String[] names = {("Ime i Prezime"), ("Naziv Firme"), ("Home Page"), ("Email"), ("Telefon"), ("Sediste Firme"), ("Zanimanje"), ("Datum Upisa"), ("Napomena")};
protected Object[][] data;
static ResultSet rset;
static Connection conn;
static String jdbcURL = "jdbc:mysql://localhost/svrle";
static String username = "root";
static String password = "";
public izlazP()
{
data = new Object[100][names.length];
try
{
Class.forName("org.gjt.mm.mysql.Driver");
}catch(Exception e)
{
JOptionPane.showMessageDialog(null, "Driver for JDBC isn't found in it's directory! Check if you have installed the JDBC and MySQL!", "Driver not found!", JOptionPane.OK_OPTION);
System.err.println("Ha, ha! Database error!");
e.printStackTrace();
}
read();
}
public synchronized void read()
{
try
{
conn=DriverManager.getConnection(jdbcURL, username, password);
Statement stat = conn.createStatement();
rset = stat.executeQuery("SELECT * FROM poslodavac");
while(rset.next())
{
data[numRows][0]=rset.getString(1);
data[numRows][1]=rset.getString(2);
data[numRows][2]=rset.getString(3);
data[numRows][3]=rset.getString(4);
data[numRows][4]=rset.getString(5);
data[numRows][5]=rset.getString(6);
data[numRows][6]=rset.getString(7);
data[numRows][7]=rset.getString(8);
data[numRows][8]=rset.getString(9);
numRows++;
}
stat.close();
conn.close();
} catch(Exception e)
{
JOptionPane.showMessageDialog(null, e.getMessage(), "Read table error!", JOptionPane.OK_OPTION);
System.out.println("DBase error!");
e.printStackTrace();
}
fireTableDataChanged();
}
// public synchronized void perdel(int[] arr)
// {
// for (int k=arr.length-1; k>=0; k--)
// {
// for(int j=arr[k]; j<numRows; j++)
// {
// for (int i=0; i<names.length; i++)
// {
// data[j][i]=data[j+1][i];
// }
// }
// }
// numRows-=arr.length;
// fireTableDataChanged();
// }
public synchronized String getColumnName(int column)
{
return names[column];
}
public int getColumnCount()
{
return names.length;
}
public synchronized int getRowCount()
{
return numRows;// = data.length;
}
public synchronized Object getValueAt(int row, int column)
{
return data[row][column];
}
}
A ovo je tabela u koju se smestaju podaci
Code:
package poslodavac.tabela;
import poslodavac.izlaz.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.SQLException;
public class tabelaP extends JFrame implements ActionListener
{
JPanel Glavni = new JPanel(new BorderLayout());
JPanel Dole = new JPanel(new FlowLayout());
JButton del=new JButton("Obrisi");
JButton find=new JButton("Nadji");
JButton exit=new JButton("Izadji");
public static JTextField pret=new JTextField("",7); //Ovde pocinje String koji koristim za pretragu
static JTable Table = new JTable(new izlazP());
JScrollPane scrollPane = new JScrollPane(Table);
public tabelaP()
{
find.addActionListener(this);
find.setActionCommand("find");
del.addActionListener(this);
del.setActionCommand("del");
exit.addActionListener(this);
exit.setActionCommand("exit");
Table.setGridColor(Color.blue);
Table.setAutoResizeMode(Table.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
Table.setDragEnabled(true);
Table.setSurrendersFocusOnKeystroke(true);
Table.setFont(new Font("Times New Roman",Font.PLAIN,14));
Dole.add(pret);
Dole.add(find);
Dole.add(del);
Dole.add(exit);
Glavni.add(Dole,BorderLayout.SOUTH);
Glavni.add(scrollPane);
setContentPane(Glavni);
}
public void pret()
{
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand()=="find")
{
//
JFrame Win = new tabelaS();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
}
if(ae.getActionCommand()=="del")
{
}
if(ae.getActionCommand()=="exit")
{
this.dispose();
}
}
}
package poslodavac.tabela;
import poslodavac.izlaz.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.sql.SQLException;
public class tabelaP extends JFrame implements ActionListener
{
JPanel Glavni = new JPanel(new BorderLayout());
JPanel Dole = new JPanel(new FlowLayout());
JButton del=new JButton("Obrisi");
JButton find=new JButton("Nadji");
JButton exit=new JButton("Izadji");
public static JTextField pret=new JTextField("",7); //Ovde pocinje String koji koristim za pretragu
static JTable Table = new JTable(new izlazP());
JScrollPane scrollPane = new JScrollPane(Table);
public tabelaP()
{
find.addActionListener(this);
find.setActionCommand("find");
del.addActionListener(this);
del.setActionCommand("del");
exit.addActionListener(this);
exit.setActionCommand("exit");
Table.setGridColor(Color.blue);
Table.setAutoResizeMode(Table.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
Table.setDragEnabled(true);
Table.setSurrendersFocusOnKeystroke(true);
Table.setFont(new Font("Times New Roman",Font.PLAIN,14));
Dole.add(pret);
Dole.add(find);
Dole.add(del);
Dole.add(exit);
Glavni.add(Dole,BorderLayout.SOUTH);
Glavni.add(scrollPane);
setContentPane(Glavni);
}
public void pret()
{
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getActionCommand()=="find")
{
//
JFrame Win = new tabelaS();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
}
if(ae.getActionCommand()=="del")
{
}
if(ae.getActionCommand()=="exit")
{
this.dispose();
}
}
}
Sa ovom funkcijom pokrecem iscitavanje iz baze:
Code:
if(ae.getActionCommand()=="pretP")
{
JFrame Win = new tabelaP();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
if(ae.getActionCommand()=="pretP")
{
JFrame Win = new tabelaP();
Win.setSize(430,400);//x,y
Win.setVisible(true);
Win.setLocation(75,80);
napomena: Proveravao sam sa Front-om , program ubaci sve u bazu ali ima problema pri iscitavanju ...ali nisam siguran da li je do baze ili do AbstractTableModel
Svaka pomoc je dobrodosla ovaj problem me muci vec mesec dana
Unapred hvala

MySQL i JTable problem oko citanja
Re: MySQL i JTable problem oko citanja