Zum Inhalt springen

Lufos

Mitglieder
  • Gesamte Inhalte

    6
  • Benutzer seit

  • Letzter Besuch

  1. Lufos

    probleme mit JDBC

    juhu,danke dir. ja, mein studium hat nix mit programmieren zu tun und trotzdem muss ich mich durch java/c++ aufgaben/prüfungen quälen. ich werd das nie wieder rbauchen danach und versteh den sinn davon auch nich. wenn es mich interessieren würde, würde ich info studieren. aber naja da kann man nix machen. zum glück gibt es ja hilfsbereite menschen in foren, sonst hätt ich gar keine chance^^. danke an alle. mfg Lufos
  2. Lufos

    probleme mit JDBC

    alles klar. nochmal einen riesen dank an euch. ich werd das jetzt so reinschreiben. wenn mir jetzt noch jemand sagt wie ich die spaltenwerte zeilenweise ausgeben kann, dann kann ich glücklich sterben. =) mfg Lufos PS: ich weis echt nicht, wieso wir mit java-aufgaben betraut werden, wenn wir davon keine ahnung haben und weder in der vorlesung noch in den übungen darauf eingegangen wird. da hätten die auch sagen können "schreibt einen chinesisch aufsatz"
  3. Lufos

    probleme mit JDBC

    super, danke euch. ich werd mir das mal zu gemüte führen. und nein der windowslistener ist nicht von mir. ich habe daran gar nix gemacht. und ja ich habe "jbdc:oracle:thin ebenfalls zensiert, weil ich eben keine ahnung hab, welche angaben da nicht für die öffentlichkeit bestimmt sind^^. ich habe das eigentlich so verstanden, dass ich meinen code an die @@TO DO@@ kommentarstellen einfügen muss. kann ich also query = txtQuery.getText(); executeQuery(); da auch hinschreiben, oder muss das an die stelle die ihr beschrieben habt und was müsste dann an die @@TO DO@@ stelle?
  4. Lufos

    probleme mit JDBC

    so wie ich das verstanden habe, wird gleich oben im quellcode der button und das textfeld mit "null" initialisiert. ich kopiere einfach mal den gesamten quellcode hierrein und markiere die aufgabenstellungen farbig. import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.awt.event.*; import java.awt.*; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JTextArea; import javax.swing.WindowConstants; /** * Hauptfenster der Anwendung. Hier finden Sie alle Aufgaben, die zu lösen sind. Suchen Sie einfach * nach der Zeichenkette <i>@@TO DO@@</i> oder gehen Sie die Datei zeilenweise durch. * @author David Zellhöfer * */ public class FrameJDBC extends JFrame implements WindowListener{ // String für die Anfrage an das DBMS private String query = "SELECT * FROM some_table"; // Variable für die Verbindung zur Datenbank private Connection connection = null; // Variablen für die GUI private javax.swing.JPanel jContentPane = null; private JScrollPane scrlPane = null; private JPanel mainPanel = null; private JPanel buttonPanel=null; private JButton btnQuery = null; private JTextArea txtResult = null; private JTextField txtQuery=null; /** * Konstruktor für das Fenster und seiner Widgets */ public FrameJDBC() { super(); init(); initDBConnection(); } /** * Initialisierung der GUI */ private void init() { this.setTitle("DB/DM Java-Übung"); this.addWindowListener(this); this.setContentPane(getJPanel()); this.setSize(500, 400); this.validate(); } /** * Öffnen der Datenbankverbindung */ private void initDBConnection(){ //@@TO DO@@ //Setzen Sie die JDBC-URL und Ihren Login korrekt //Hinweise: Der mitgelieferte Treiber ist ein Oracle-Thin-Treiber // Informationen zu Oracle und JDBC sind im Internet gut dokumentiert String url ="jdbc:zensiert:@zensiert:zensiert:zensiert"; String username = "zensiert"; //Nutzername String password = "zensiert"; //Passwort // Instanzierung des Oracle-Treibers try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch(ClassNotFoundException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Kein Treiber gefunden", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); System.exit(1); } //Erstellung einer Verbindung zur Datenbank try { connection = DriverManager.getConnection(url, username, password); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Kein Verbindungsaufbau möglich", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } /** * Ausfuehrung der DB-Anfrage */ private void executeQuery(){ try { [COLOR="Red"]// @@TO DO@@ // Verbinden Sie hier die eingebene Einfrage mit dem Absenden einer Abfrage // Hinweis: Das Textfeld heißt "txtQuery"[/COLOR] //Erzeugung eines Statements Statement statement = connection.createStatement(); //Holen Ergebnismenge der Anfrage ResultSet resultSet = statement.executeQuery(query); showResult(resultSet); //Schliessen des ResultSets resultSet.close(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Fehler beim Ausführen der Abfrage", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } /** * Ausgabe der Ergebnismenge in der TextArea */ private void showResult(ResultSet resultSet){ try { this.txtResult.setText(""); // Holen der Metadaten der Datenbank ResultSetMetaData metaData = resultSet.getMetaData(); // Anzahl der Tabellenspalten int number = metaData.getColumnCount(); // Ausgabe der Spaltennamen addTextToArea("\n"); for (int i=1;i<=number;i++){ // Name der Tabellenspalte String name = metaData.getColumnName(i); // Ausgabe der Spaltennamen in der TextArea addTextToArea(name + " "); } addTextToArea("\n"); addTextToArea("--------------------------------\n"); [COLOR="Red"]//@@TO DO@@ // Geben Sie die Spaltenwerte zeilenweise aus[/COLOR] } catch (SQLException e) { e.printStackTrace(); } } /** * Fügt eine Text zur TextArea hinzu ohne diese zu überschreiben */ private void addTextToArea(String str){ getJTextArea().setText(getJTextArea().getText()+ str); } /** * Erzeugt die eigentliche GUI */ private JPanel getJPanel() { mainPanel = new JPanel(); mainPanel.setLayout(new BorderLayout()); this.txtQuery=new JTextField(); this.txtQuery.setText(this.query); mainPanel.add(txtQuery,BorderLayout.NORTH); createButtons(); mainPanel.add(buttonPanel,BorderLayout.SOUTH); mainPanel.add(getJScrollPane(), BorderLayout.CENTER); return mainPanel; } /** * Erzeugt die Buttons der Anwendung */ private void createButtons() { this.buttonPanel=new JPanel(); this.buttonPanel.setLayout(new FlowLayout()); if (btnQuery == null) { btnQuery = new JButton(); btnQuery.setText("Abfrage senden"); btnQuery.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { JOptionPane.showMessageDialog(null, "Die Abfrage wird nun gesendet. Die Rückgabe der Ergebnisse kann einige Zeit dauern.", "Verbinden mit der DB", JOptionPane.INFORMATION_MESSAGE); executeQuery(); } }); } buttonPanel.add(btnQuery); } /** * Erzeugt eine TextArea zur Anzeige des Anfrageergebnisses */ private JTextArea getJTextArea() { if (txtResult == null) { txtResult = new JTextArea(); txtResult.setColumns(20); txtResult.setRows(20); txtResult.setText(""); } return txtResult; } /** * Erzeugt ein ScrollPane */ private JScrollPane getJScrollPane() { if (scrlPane == null) { scrlPane = new JScrollPane(getJTextArea()); } return scrlPane; } /** * Schließt die DB-Verbindung */ public void dispose(){ try { if(connection!=null) connection.close(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Fehler beim Verbindungsabbau", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } @Override public void windowClosing(WindowEvent arg0) { this.dispose(); System.exit(0); } @Override public void windowActivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowClosed(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeactivated(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowDeiconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowIconified(WindowEvent arg0) { // TODO Auto-generated method stub } @Override public void windowOpened(WindowEvent arg0) { // TODO Auto-generated method stub } } reicht da der code query = txtQuery.getText(); um das textfeld zu verbinden?
  5. Lufos

    probleme mit JDBC

    danke.nein kann ich leider nicht. das ist schon die originalaufgabenstellung im code. nochmal rauskopiert: // @@TO DO@@ // Verbinden Sie hier die eingebene Einfrage mit dem Absenden einer Abfrage // Hinweis: Das Textfeld heißt "txtQuery" mehr infos habe ich nicht.ich weis ja selber nicht mal was ich machen soll^^.
  6. Lufos

    probleme mit JDBC

    hi, ich soll für ein praktikum(SQL,datanbanken) auch 3 java aufgaben lösen und stoße da an meine grenzen...von java hab ich nicht den geringsten schimmer und nach stundenlangem suchen im internet konnte ich wenigstens die erste lösen(laden des oracle treibers und verbinden mit der db) zum 2. problem: es geht speziell darum, eine einfrage mit dem absenden einer abfrage zu verbinden. ich habe absolut keine ahnung was ich machen soll und wäre über jeden ratschlag mehr als dankbar. hier der code: /** * Ausfuehrung der DB-Anfrage */ private void executeQuery(){ try { // @@TO DO@@ // Verbinden Sie hier die eingebene Einfrage mit dem Absenden einer Abfrage // Hinweis: Das Textfeld heißt "txtQuery" //Erzeugung eines Statements Statement statement = connection.createStatement(); //Holen Ergebnismenge der Anfrage ResultSet resultSet = statement.executeQuery(query); showResult(resultSet); //Schliessen des ResultSets resultSet.close(); } catch (SQLException e) { JOptionPane.showMessageDialog(null, e.getMessage(), "Fehler beim Ausführen der Abfrage", JOptionPane.ERROR_MESSAGE); e.printStackTrace(); } } /** * Ausgabe der Ergebnismenge in der TextArea */ private void showResult(ResultSet resultSet){ try { this.txtResult.setText(""); // Holen der Metadaten der Datenbank ResultSetMetaData metaData = resultSet.getMetaData(); // Anzahl der Tabellenspalten int number = metaData.getColumnCount(); // Ausgabe der Spaltennamen addTextToArea("\n"); for (int i=1;i<=number;i++){ // Name der Tabellenspalte String name = metaData.getColumnName(i); // Ausgabe der Spaltennamen in der TextArea addTextToArea(name + " "); } addTextToArea("\n"); addTextToArea("--------------------------------\n"); bei der dritten aufgabe steht nur "Geben Sie die Spaltenwerte zeilenweise aus" da der obrige code für mich chinesisch ist, weis ich gar nit was die von mir wollen =(. ich erwarte nicht, dass ihr das problem für mich löst, ein paar tips wären ganz nett, da ich wirklich null ahnung von java habe. mfg Lufos

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...