Hallo liebe Community,
ich bräuchte mal etwas Hilfe.
Ich habe mein Java-Programm erfolgreich mit einer HeidiSQL-Datenbank verbunden und erneut als GUI. Dazu habe ich mir ein Frame, etc. erstellt.
Die Verbindung mit der GUI und SQL funktioniert auch. Dazu habe ich ein JTable genommen.
Jetzt möchte ich die Datei als JAR machen, damit ich sie als selbstständiges Programm öffnen kann, damit möchte ich später arbeiten als eigene Datenbank.
Ich habe Sie als JAR umgewandelt, es kommt aber immer als Fehlermeldung eine Message: "com.mysql.cj.jdbc.Driver". Die Ausgabe erfolgt über ein JOptionPane.
Sie soll aber die Daten der SQL-Tabelle ausgeben.
Was mache ich falsch?
Schon mal Vielen Dank und hier mein Code :
ich bräuchte mal etwas Hilfe.
Ich habe mein Java-Programm erfolgreich mit einer HeidiSQL-Datenbank verbunden und erneut als GUI. Dazu habe ich mir ein Frame, etc. erstellt.
Die Verbindung mit der GUI und SQL funktioniert auch. Dazu habe ich ein JTable genommen.
Jetzt möchte ich die Datei als JAR machen, damit ich sie als selbstständiges Programm öffnen kann, damit möchte ich später arbeiten als eigene Datenbank.
Ich habe Sie als JAR umgewandelt, es kommt aber immer als Fehlermeldung eine Message: "com.mysql.cj.jdbc.Driver". Die Ausgabe erfolgt über ein JOptionPane.
Sie soll aber die Daten der SQL-Tabelle ausgeben.
Was mache ich falsch?
Schon mal Vielen Dank und hier mein Code :
Java:
package datenbank;
import java.awt.EventQueue;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import javax.swing.JFrame;
import javax.swing.JTable;
import javax.swing.JScrollPane;
import javax.swing.RowFilter;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableRowSorter;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class SQL_GUI_Connection_personalie extends JFrame {
/**
* Launch the application
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
SQL_GUI_Connection_personalie frame = null;
try {
frame = new SQL_GUI_Connection_personalie();
} catch (SQLException e) {
e.printStackTrace();
}
frame.setVisible(true); // Frame sichtbar
}
});
}
/**
* Create the Frame
*/
public SQL_GUI_Connection_personalie() throws SQLException {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Run beenden
setBounds(100, 100, 580, 242); // Frame größe
setTitle("Tutorial-Beispiel"); // Frame Überschrift
getContentPane().setLayout(null);
// Scrollpane
JScrollPane scrollPane = new JScrollPane(); // ScrollPane erstellt
scrollPane.setBounds(64, 44, 440, 89); // Größe Scrollpane
getContentPane().add(scrollPane); // Scrollpane dem getContentpane hinzugefügt
// Table
JTable table = new JTable(); // Table erstellt
scrollPane.setViewportView(table); // scrollpane dem table (tabelle) hinzugefügt
// Model for Table
DefaultTableModel model = (DefaultTableModel)table.getModel(); // Model erstellt
model.addColumn("ID"); // Überschrift Table (tabelle-spalten)
model.addColumn("Firstname"); // Überschrift table (tabelle-spalten)
model.addColumn("Lastname"); // Überschrift table (tabelle-spalten)
model.addColumn("Sport"); // Überschrift table (tabelle-spalten)
model.addColumn("# of years"); // Überschrift table (tabelle-spalten)
model.addColumn("vegetarian"); // Überschrift table (tabelle-spalten)
JLabel lblFilter = new JLabel("Filter :"); // label erstellt
lblFilter.setBounds(158, 147, 72, 14); // Label Größe
getContentPane().add(lblFilter); // label dem getContentPane zugeordnet
// Filter
final JTextField txtFilter = new JTextField(); // Textfield erstellt
txtFilter.setBounds(197, 144, 129, 20); // Textfield erstellt
getContentPane().add(txtFilter); // Textfielf dem GetContentpane zugeordnet
// Header Sort
final TableRowSorter<DefaultTableModel> sorter = new TableRowSorter<DefaultTableModel>(model);
table.setRowSorter(sorter);
// Button OK
JButton btnOK = new JButton("OK"); // button erstellt, Button-Schrift="OK"
btnOK.addActionListener(new ActionListener() { // Befehl, click auf button hinzugefügt
@Override //
public void actionPerformed(ActionEvent actionEvent) { //
String expr = txtFilter.getText(); // String expr = textfield (bekommt text von dort)
sorter.setRowFilter(RowFilter.regexFilter(expr)); //
sorter.setSortKeys(null); //
}
});
btnOK.setBounds(336, 144, 59, 23); // Button Größe
getContentPane().add(btnOK); // Button dem getContnetPane zugeordnet
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.cj.jdbc.Driver"); // SQL Treiber
connect = DriverManager.getConnection("jdbc:mysql://localhost/test","till","Tillerni02"); // Connection zur Datenbank (Pfad + nutzername + passwort der Datenbank)
s = connect.createStatement();
String sql = "SELECT * FROM personalie ORDER BY ID"; // Auswahl Tabelle, Anzeigekriterien
ResultSet rec = s.executeQuery(sql);
int row = 0;
while ((rec!=null) && (rec.next()))
{
model.addRow(new Object[0]);
model.setValueAt(rec.getString("ID"), row, 0); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("Firstname"), row, 1); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("Lastname"), row, 2); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("Sport"), row, 3); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getFloat("# of years"), row, 4); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
model.setValueAt(rec.getString("vegetarian"), row, 5); // spalten-name der SQL-Tabelle (muss richtig sein, sonst Fehler)
row++;
}
rec.close();
} catch (Exception e) {
// TODO Auto-generated catch block
JOptionPane.showMessageDialog(null, e.getMessage());
e.printStackTrace();
}
try {
if (s != null) {
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Zuletzt bearbeitet von einem Moderator: