Moin!
Mittlerweile klappt das mit der JTable, allerdings erzeugt er zwei mal den gleichen Datensatz in der JTable, gibt aber in der Konsole zwei unterschiedliche richtige Datensätze aus.
Ich weiß jetzt nicht ob das ein JDBC Problem oder ein JTable Problem ist.
Mittlerweile klappt das mit der JTable, allerdings erzeugt er zwei mal den gleichen Datensatz in der JTable, gibt aber in der Konsole zwei unterschiedliche richtige Datensätze aus.
Ich weiß jetzt nicht ob das ein JDBC Problem oder ein JTable Problem ist.
Code:
import java.sql.*;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Finanzanalyse extends JFrame implements ActionListener
{
JLabel header;
JLabel fehlerMeldung;
JButton connect;
static JTable table;
static Vector vec;
private Container con;
String ausgabe;
String[] titels;
static DefaultTableModel model;
public Finanzanalyse()
{
super("Daten aus der Datenbank saugen ...");
con = getContentPane();
titels = new String[]{"Umsaetze"};
model = new DefaultTableModel(titels, 0);
table = new JTable(model);
vec = new Vector();
connect = new JButton("saugen ");
header = new JLabel("Daten Anzeige");
fehlerMeldung = new JLabel("Fehler" );
fehlerMeldung.setVisible(false);
JPanel layoutPanel = new JPanel();
layoutPanel.setLayout( new BoxLayout( layoutPanel, BoxLayout.Y_AXIS) );
layoutPanel.add(header);
layoutPanel.add(connect);
layoutPanel.add( new JScrollPane( table ) );
layoutPanel.add(fehlerMeldung);
con.add(layoutPanel);
connect.setActionCommand("saugen");
connect.addActionListener(this);
}
public void actionPerformed(ActionEvent a)
{
if(a.getActionCommand().equals("saugen"))
{
try
{
datenSaugenMethode();
}
catch (SQLException e)
{
fehlerMeldung.setVisible(true);
System.out.println(e);
}
catch (ClassNotFoundException e)
{
throw new RuntimeException(e);
}
}
}
public void datenSaugenMethode()throws SQLException, ClassNotFoundException
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = "jdbc:odbc:PostgreSQL";
Connection con = DriverManager.getConnection(url, "user", "passwd");
PreparedStatement st = con.prepareStatement("Select umsatz from finanzdaten");
ResultSet rs = st.executeQuery();
int numCols = rs.getMetaData().getColumnCount();
while(rs.next())
{
for(int j = 1; j <= numCols; j++)
{
ausgabe = (rs.getString(j) + "");
System.out.println(ausgabe);
}
vec.addElement(ausgabe);
model.addRow(vec);
}
//System.out.println(vec.toString());
st.close();
//rs.close();
con.close();
}
public static void main(String args[]) throws SQLException, ClassNotFoundException
{
Finanzanalyse app = new Finanzanalyse();
app.setDefaultCloseOperation(EXIT_ON_CLOSE);
app.setSize(200,200);
app.setVisible(true);
}
}