Ankündigung

Einklappen
Keine Ankündigung bisher.

in eine datenbank schreiben

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • in eine datenbank schreiben

    hallo,

    ich möchte gern das freeware Programm jabref erweitern und möchte von Jabref in eine mysql db schreiben. Meine Tabellen stehen schon.
    Ich möchte die daten von der Datenbank auslesen und ein button speichern erstellen, so dass wenn ich auf diesen Button klicke er mir diese daten in die datebank schreibt und möchte diese daten dann nach wunsch auf der benutzeroberfläche anzeigen.



    Wäre für jeden Tipp dankbar!

  • #2
    Hi,

    du brauchst dafür einen JDBC Driver. Für Mysql gibt es den MySQL Connector/J.

    http://dev.mysql.com/downloads/connector/j/

    Kommentar


    • #3
      danke das habe ich schon, aber ich weiß nicht wie ich das ganze implementieren soll.
      Es gibt soviele Klassen und ich habe keinen Überblick, wie ich anfangen soll bzw. in welche Klasse ich das Zeug hinschieben soll :-(

      Kommentar


      • #4
        Der Treiber stellt für dich die Verbindung her. Such dir einfach ein paar Tutorials zum MySQL Connector/J.

        Mit Java stellst du dann die Verbindung her.

        Code:
        package com.codeplanet.example;
        
        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.SQLException;
        
        public class JdbcExample2 {
        
          public static void main(String args[]) {
            Connection con = null;
        
            try {
              Class.forName("com.mysql.jdbc.Driver").newInstance();
              con = DriverManager.getConnection("jdbc:mysql:///test",
                "root", "secret");
        
              if(!con.isClosed())
                System.out.println("Successfully connected to " +
                  "MySQL server using TCP/IP...");
        
            } catch(Exception e) {
              System.err.println("Exception: " + e.getMessage());
            } finally {
              try {
                if(con != null)
                  con.close();
              } catch(SQLException e) {}
            }
          }
        }
        Es hibt hier ein Tutorial für MySQL Connector/Net. Das ist dasselbe nur in C#.

        http://www.codeplanet.eu/tutorials/c...it-csharp.html

        Kommentar


        • #5
          Ich habe halbwegs den code ,aber ich weiß nicht wo ich diesen code in jabref impleentieren soll
          package Test;

          import java.util.*;
          import java.sql.*;


          public class JavaDBTest {

          public static void main(String[] args){
          Connection dbconn = null;
          Statement stmt=null;
          String mysqlHost = "localhost";
          String mysqlDB = "dbname";
          String mysqlUser = "root";
          String mysqlPass = "";
          int id=0;

          //Verbindung öffnen
          try {
          if(dbconn == null || dbconn.isClosed()) {
          // Load the JDBC driver.
          Class.forName("com.mysql.jdbc.Driver");
          DriverManager.setLoginTimeout(10);

          // Establish the connection to the database.
          dbconn = DriverManager.getConnection("jdbc:mysql://" + mysqlHost
          + "/" + mysqlDB, mysqlUser, mysqlPass);

          stmt = dbconn.createStatement();
          }
          } catch (Exception e) {
          System.out.println(e);
          }

          //Statements ausführen
          try {
          stmt.executeUpdate("INSERT INTO tabname (RFID_Tagid,pub_type_id,Owner_id,Standort_id,user_ id,year,actualyear,title,bibtex_id,report_type,sur vey,mark,series,volume,publisher,location,issn,isb n,firstpage,lastpage,journal,booktitle,number,inst itution,address,chapter,edition,howpublished,month ,organization,school,note,abstract,url,doi,crossre f,namekey,userfields,specialchars,cleanjournal,cle antitle,cleanauthor,read_access_level,edit_access_ level,derived_read_access_level,derived_edit_acces s_level,pages,Signatur,roles_ids,entleihbarFuer,vo rmerkbarFuer,SichtbarFuer) VALUES (1,2,3,4,5,1998,2010,'ichbin titel','1','r',3,2,'s','volume','publis','location ','issn','isbn','firstpage','lastpage','journal',' booktitle','number','institution','address','chapt er','edition','howpublished','month','organisation ','school','note','abstract','url','doi','crossref ','namekey','userfields',true,'cleanjournal','clea ntitle','cleanautor',1,3,4,5,'pages','signatur','r oles-ids','entleihbar','vorm','sichtb');");
          ResultSet rs = stmt.executeQuery("SELECT LAST_INSERT_ID();");
          rs.next();
          id = rs.getInt(1);
          } catch (Exception e) {
          System.out.println(e);
          }
          System.out.println(id+"");

          try {
          ResultSet rs = stmt.executeQuery("SELECT * FROM tabname;");
          while(rs.next()) {
          System.out.println(Integer.valueOf(rs.getString(1) ));
          System.out.println(rs.getString(2));
          System.out.println(rs.getString(3));
          }
          } catch (Exception e) {
          System.out.println(e);
          }


          //Verbindung schliessen
          try {
          dbconn.close();
          dbconn = null;
          } catch (Exception e) {
          System.out.println(e);
          }

          }
          }

          Kommentar


          • #6
            Den Code schreibst du dorthin, wo du auch deinen Button zum Einfügen gesetzt hast.

            Du hast deine Mysql Klasse mit Methoden und diese Methoden ruft dann dein ActionListener für den Button auf.

            Kommentar


            • #7
              den jabref code hab ich von http://sourceforge.net/projects/jabref/files/jabref/2.5 runtergeladen.Für meine Verhältnisse ist es viel zu viel code :-(
              den Button hab ich noch nicht gesetzt, aber vielen dank!
              ich schau mal, ob ich weiterkomme.


              grüße!
              Zuletzt geändert von jabref; 06.04.2010, 18:09.

              Kommentar


              • #8
                Hallo jabref,

                es ist natürlich nicht leicht sich als Anfänger in ein großes Projekt hinein zu versetzen. Der Code größerer Programme ist immer sehr umfangreich und man verliert leicht den Überblick.

                Leider wird man dir diesbezüglich nicht helfen können, da musst du dich selbst einarbeiten. Immerhin wolltest du genau das Programm erweitern. Ein wenig Hilfe hast du bereits erhalten.

                Zunächst solltest du eine Klasse erstellen, die den Zugriff auf deine MySQL Datenbank regelt, d.h. die Verbindung herstellt usw.

                Im Programm selbst rufst du dann Methoden dieser Klasse auf, z.B. wenn du Daten in die Datenbank einfügen möchtest. Deine SQL Anweisungen, wie INSERT INTO werden an entsprechender Stelle hinterlegt, zum Beispiel im Listener eines Buttons oder in einer Ausführungsmethode.

                Was genau du machen möchtest hängt natürlich von dir selbst ab. Beginnen kannst du mit kleinen Veränderungen und Erweiterungen, Schritt für Schritt.

                Grüße,
                Haan
                Code:
                 __    __   ______   ______   ______   __  __   __   __ ______   ______   
                /\ "-./  \ /\  __ \ /\  ___\ /\  ___\ /\ \_\ \ /\ \ / //\  ___\ /\  == \  
                \ \ \-./\ \\ \  __ \\ \ \____\ \ \__ \\ \____ \\ \ \'/ \ \  __\ \ \  __<  
                 \ \_\ \ \_\\ \_\ \_\\ \_____\\ \_____\\/\_____\\ \__|  \ \_____\\ \_\ \_\
                  \/_/  \/_/ \/_/\/_/ \/_____/ \/_____/ \/_____/ \/_/    \/_____/ \/_/ /_/

                Kommentar


                • #9
                  Klingt Logisch , ist trotzdem schwer
                  ich wollte nur mal aus meinem obigen code 3 Methoden erstellen, statt alles in einer, habe dazu diesen code programmiert, aber es funktioniert nicht.
                  Vielleicht kann mir jemand posten was ich falsch gemacht habe?

                  hier mein angepaßter Code
                  PHP-Code:
                  package Test;

                  import java.util.*;
                  import java.sql.*;


                  public class 
                  CopyOfJavaDBTest {
                      
                  static  
                  Connection con;
                  static    
                  Statement stmt;
                      static 
                  String mysqlHost "localhost";
                      static 
                  String mysqlDB "bibliothek";
                      static 
                  String mysqlUser "root";
                      static 
                  String mysqlPass "";
                      static 
                  int id=0;
                      
                      public static 
                  void main(String[] args){
                          
                  Connection con getConnection();
                          
                      }    
                          public static 
                  Connection getConnection(){
                          
                              try {
                                  
                                      
                  // Load the JDBC driver.
                                      
                  Class.forName("com.mysql.jdbc.Driver");
                                      
                  DriverManager.setLoginTimeout(10);
                                  
                                      
                  // Establish the connection to the database.
                                      
                  con DriverManager.getConnection("jdbc:mysql://" mysqlHost
                                          
                  "/" mysqlDBmysqlUsermysqlPass);
                                      
                                      
                  stmt con.createStatement();
                                  
                              } catch (
                  Exception e) {
                                  
                  System.out.println(e);
                              }
                              return 
                  con;
                          }

                          public static 
                  void insertFunction(){
                              
                  Connection con getConnection();
                              
                  //Statements ausführen
                              
                  try {
                                  
                  stmt con.createStatement();
                                  
                  stmt.executeUpdate("INSERT INTO aig_publication (RFID_Tagid,pub_type_id,Owner_id,Standort_id,user_id,year,actualyear,title,bibtex_id,report_type,survey,mark,series,volume,publisher,location,issn,isbn,firstpage,lastpage,journal,booktitle,number,institution,address,chapter,edition,howpublished,month,organization,school,note,abstract,url,doi,crossref,namekey,userfields,specialchars,cleanjournal,cleantitle,cleanauthor,read_access_level,edit_access_level,derived_read_access_level,derived_edit_access_level,pages,Signatur,roles_ids,entleihbarFuer,vormerkbarFuer,SichtbarFuer) VALUES (1,2,3,4,5,1998,2010,'ichbin titel','1','r',3,2,'s','volume','publis','location','issn','isbn','firstpage','lastpage','journal','booktitle','number','institution','address','chapter','edition','howpublished','month','organisation','school','note','abstract','url','doi','crossref','namekey','userfields',true,'cleanjournal','cleantitle','cleanautor',1,3,4,5,'pages','signatur','roles-ids','entleihbar','vorm','sichtb');");
                                  
                  ResultSet rs stmt.executeQuery("SELECT LAST_INSERT_ID();");
                                  
                  rs.next();
                                  
                  id rs.getInt(1);
                                  
                  con.close();
                              } catch (
                  Exception e) {
                                  
                  System.out.println(e);
                              }
                              
                  System.out.println(id+"");
                          }
                      
                          public static 
                  void selectFunction(){
                              try {
                                  
                  ResultSet rs stmt.executeQuery("SELECT * FROM aig_publication;");
                                  while(
                  rs.next()) {
                                      
                  System.out.println(Integer.valueOf(rs.getString(1)));
                                      
                  System.out.println(rs.getString(2));
                                      
                  System.out.println(rs.getString(3));
                                  }
                                  
                  con.close();
                              } catch (
                  Exception e) {
                                  
                  System.out.println(e);
                              }    
                                  
                          }
                          
                          
                      
                          
                      } 

                  Kommentar

                  Lädt...
                  X