Eigene Libary

Status
Nicht offen für weitere Antworten.

tom g.

Aktives Mitglied
Hallo Forum,

ich habe mir 2 Klassen erstellt, die den Umgang mit einem MySQL-Server erleichtern sollen.

Dann habe ich das Ganze als Jar gepackt, Docu erstellt und in meinem Projekt als Libary importiert.

Code:
public class TestMAin {
    
    /** Creates a new instance of TestMAin */
    public TestMAin() {
        MySQLDBConfig msc = new MySQLDBConfig();
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
    }
    
}

geht nicht, bekomme ich immer ein

Z:\JHelpMe\src\jhelpme\TestMAin.java:20: cannot find symbol
symbol : class MySQLDBConfig
location: class jhelpme.TestMAin
MySQLDBConfig msc = new MySQLDBConfig();

Ich habe angenommen, wenn ich das Jar mit in die Libarys packe, brauche ich es nicht mehr zu importieren.

Die Klassen:

Code:
/*
 * MySQLDBConfig.java
 *
 * Created on 16. April 2007, 08:49
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.togo.mysqldb;

/**
 * Klasse zum einstellen der Zugangsdaten des MySQL-Server.
 * @author cttogo
 */
public class MySQLDBConfig {
    private String sDBHost = "";
    private String sDBPort = "3306";
    private String sUserName = "";
    private String sPassWord = "";
    private String sDBName = "";
    /**
     * Erstellt eine neue Instanz von MySQLDBConfig
     */
    public MySQLDBConfig() {
    }
    
    
    /**
     * Setzt den DatenBank Host
     * @param String Die IP-Adresse des Servers
     * @return true
     * @return false - Wenn der String leer ist.
     */
    public boolean setDBHost(String dbhost){
        if(dbhost.length() > 0){
            sDBHost = dbhost;
            return true;
        } else {
            return false;
        }
    }
    
    /**
     * Gibt den DatenBank Host zurück
     * @return String - Die IP-Adresse
     */
    public String getDBHost(){
        return sDBHost;
    }
    
    /**
     * Setzt den Port für die Verbindung.
     * Standard Port 3306 ist gesetzt.
     * @param String Der Verbindungs Port
     * @return true
     * @return false - Wenn der String leer ist.
     */
    public boolean setDBPort(String dbport){
        if(dbport.length() > 0){
            sDBPort = dbport;
            return true;
        } else {
            return false;
        }
    }
    
    /**
     * Gibt den Port für die Verbindung zurück.
     * @return String - Der Verbindungsport
     */
    public String getDBPort(){
        return sDBPort;
    }
    
    /**
     * Setzt den Namen der Datenbank
     * @param String Der Name der Datenbank
     * @return true
     * @return false - Wenn der String leer ist.
     */
    public boolean setDBName(String dbname){
        if(dbname.length() > 0){
            sDBName = dbname;
            return true;
        } else {
            return false;
        }
    }
    
    /**
     * Gibt den Namen der Datenbank zurück
     * @return String - Den Namen der Datenbank
     */
    public String getDBName(){
        return sDBName;
    }
    
    /**
     * Setzt den Benutzernamen für die Datenbankverbindung
     * @param String Den Benutzernamen
     * @return true
     * @return false - Wenn der String leer ist.
     */
    public boolean setUserName(String username){
        if(username.length() > 0){
            sUserName = username;
            return true;
        } else {
            return false;
        }
    }
    
    /**
     * Gibt den Beunutzernamen zurück
     * @return String - Deen Benutzernamen
     */
    public String getUserName(){
        return sUserName;
    }
    
    /**
     * Setzt das Passwort für die Datenbankverbindung im [B]Klartext[/B]
     * @param String Das Passwort für dei Datenbankverbindung    
     * @return true
     * @return false - Wenn der String leer ist.
     */
    public boolean setPassWord(String password){
        if(password.length() > 0){
            sPassWord = password;
            return true;
        } else {
            return false;
        }
    }
    
    /**
     * Gibt das Password für die Datenbankverbindung zurück
     * @return String - Das Passwort für die Datenbankverbindung
     */
    public String getPassWord(){
        return sPassWord;
    }
}

und
Code:
/*
 * MySQLDB.java
 *
 * Created on 16. April 2007, 08:51
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package org.togo.mysqldb;

/**
 *
 * @author cttogo
 */
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


/**
 * Klasse zum erstellen einer DatenBankVerbindung zu einem MySQL Server.
 * Benötigt ein [B]MySQLDBConfig Objekt[/B]
 */
public class MySQLDB {
    private String sQuery = "";
    private String sConnectDB = "";
    private Connection conn = null;
    private Statement stmt = null;
    private ResultSet rs = null;
    private String[] result;
    private String[][] all_result;
    private String sError = "";
    
    
    /**
     * Erstellt eine neues MySQLDB Objekt
     * @param MySQLDBConfig Objekt mit den Konfigurationsdaten für die Serververbindung
     */
    public MySQLDB(MySQLDBConfig mysqldbconfig) {
        sConnectDB = "jdbc:mysql://" + mysqldbconfig.getDBHost() +"/" + mysqldbconfig.getDBName() + "?" +"user=" + mysqldbconfig.getUserName() + "&password=" + mysqldbconfig.getPassWord();
    }
    
    /**
     * Stellt die Verbindung zum Server her
     * @return boolean tue | false
     * @throws ClassNotFoundException Wenn der Datenbanktreiber nicht gefunen wird
     * @throws SQLException Wenn es Fehler beim Verbindungsaufbau gibt
     */
    public boolean connectDB(){
        try {
            Class.forName("com.mysql.jdbc.Driver");
        } catch(ClassNotFoundException cnfe) {
            return false;
        }
        try {
            conn = DriverManager.getConnection(sConnectDB);
            return true;
        } catch (SQLException sqlx) {
            System.out.println("SQLException: " + sqlx.getMessage());
            System.out.println("SQLState: " + sqlx.getSQLState());
            System.out.println("VendorError: " + sqlx.getErrorCode());
            return false;
        }
    }
    
    /**
     * Schließt die Datenbankverbindung
     * @throws SQLException Wenn Fehler auftreten
     * @return boolean true | false
     */
    public boolean disconnectDB(){
        if (conn != null){
            try{
                conn.close();
                return true;
            } catch(SQLException sqlx) {
                System.out.print(sqlx.getMessage());
                return false;
            }
        }
        return true;
    }
    
       
    
    /**
     * Führt das SQL-Query aus.
     * Unterscheidet zwischen einfügenden und auslesenden Querys
     * @param String Das SQL-Query z.B.("SELECT * FROM FOO)
     * @throws SQLException 
     */
    public boolean query(String query){
        if(query.toUpperCase().contains("SELECT") ){
            try {
                stmt = conn.createStatement();
                rs = stmt.executeQuery(query);
                return true;
            } catch (SQLException sqlx){
                return false;
            }
        } else {
            try{
                stmt = conn.createStatement();
                stmt.executeUpdate(query);
                stmt.close();
                return true;
            } catch (SQLException sqlx){
                return false;
            }
        }
        
    }
    
    /**
     * Gibt [B]expliziet[/B] den ersten Datensatz zurück.
     * @return Array
     * @throws SQLException 
     */
    public String[] getData(){
        try{
            result = new String[rs.getMetaData().getColumnCount()];
        } catch(SQLException sqlx){
            
        }
        try{
            if(rs.first() ){
                for(int i = 0;i < rs.getMetaData().getColumnCount(); i++){
                    result[i] = rs.getString((i+1));
                }
            }
            rs.close();
            stmt.close();
        }catch(SQLException sqlx){
            System.out.println(sqlx);
        }
        return result;
    }
    
    
    /**
     * Gibt alle Datensätze zurück
     * @return mehrdimensionalen Array
     * @throws SQLException 
     */
    public String[][] getDataAll(){
        try{
            all_result = new String[getRowCount()][rs.getMetaData().getColumnCount()];
        } catch(SQLException sqlx){
            
        }
        int iIndex = 0;
        try{
            while(rs.next() ){
                for(int i = 0;i < rs.getMetaData().getColumnCount(); i++){
                    all_result[iIndex][i] = rs.getString((i+1));
                }
                iIndex ++;
            }
            rs.close();
            stmt.close();
        }catch(SQLException sqlx){
            System.out.println(sqlx);
        }
        return all_result;
    }
    
    /**
     * Gibt die Anzahl der Datensätze zurück
     * @return Integer | 0 bei Fehler
     * @throws SQLException 
     */
    public int getRowCount(){
        int iRowCount = 0;
        try{
            rs.last();
            iRowCount = rs.getRow();
            rs.beforeFirst();
        }catch (SQLException sqlx){
            
        }
        return iRowCount;
    }
    
    /**
     * Gibt den letzten MySQL Fehler zurück (Status + Fehlercode)
     * @return String
     */
    public String getLastError(){
        return sError;
    }
    
    /**
     * Gibt die zulezt eingefügte Index-ID zurück
     * @return Interger | 0 bei Fehler
     * @throws SQLException 
     */
    public int getLastID(){
        int iLastID = 0;
        try{
            stmt = conn.createStatement();
            rs = stmt.executeQuery("SELECT LAST_INSERT_ID()");
            if (rs.next()) {
                iLastID = rs.getInt(1);
            }
            rs.close();
            stmt.close();
        }catch(SQLException sqlex){
            
        }
        return iLastID;
    }
    
    
}

THX 4 HELP

Tom

ps: Die Klassen sind noch nicht ganz fertig.
 

AlArenal

Top Contributor
tom g. hat gesagt.:
Ich habe angenommen, wenn ich das Jar mit in die Libarys packe, brauche ich es nicht mehr zu importieren.

Sinniger wäre es gewesen diese Annahme nachzuschlagen. Dann hättest du von selbst herausgefunden, dass sie falsch ist.
 

tom g.

Aktives Mitglied
Hallo AlArenal,

eventuell habe ich mich falsch ausgedrückt.

Ich habe das Jar schon in Netbeans importiert,

dachte aber ich könnte auf
Code:
import org.togo.mysqldb.*;

verzichten.

Mit dem hsqldb.jar oder mysql-connector-java-5.0.5-bin.jar mache ich es doch genauso. :bahnhof:

Da stehen dann auch keine import Anweisungen im Code.


THX

Tom
 

AlArenal

Top Contributor
Ich hab dich schon richtig verstanden, aber mein Wink mit dem Laternenmast kam wohl nicht an: Schnapp dir ein Buch! :p

Und was deine Anmerkung zu hsqldb und dem JDBC Treiber angeht: Leite nicht falsche Annahmen aus fehlerbehafteten Beobachtungen ab, sondern beschäftige mit den Basics indem du nachliest wie die Sprache funktioniert.

Sonst brauchst du 1000 Jahre (und wir viel Nerven) ehe du dir Java per Trial & Error eingebläut hast ;)

Ist doch kein Hexenwerk sich eben in nem Buch Kapitel über Imports und Packages reinzuziehen.
 

tom g.

Aktives Mitglied
AlArenal hat gesagt.:
Ich hab dich schon richtig verstanden, aber mein Wink mit dem Laternenmast kam wohl nicht an:

Doch kam an, läuft ja jetzt, hatte sogar schon den Hacken gesetzt. :D

AlArenal hat gesagt.:
Schnapp dir ein Buch! :p

Habe ich ein halbes Dutzend.

AlArenal hat gesagt.:
Und was deine Anmerkung zu hsqldb und dem JDBC Treiber angeht: Leite nicht falsche Annahmen aus fehlerbehafteten Beobachtungen ab, sondern beschäftige mit den Basics indem du nachliest wie die Sprache funktioniert.

Auch wenn man sich mit den Basics beschäftigt hat, darf man, glaub ich, auch mal falsche Annahmen aus fehlerhaften Beobachtungen ziehen.

Beobachtungen sind nun mal subjektiv und da ist es keine Schande auch mal auf dem Holzweg zu sein.

AlArenal hat gesagt.:
Sonst brauchst du 1000 Jahre (und wir viel Nerven) ehe du dir Java per Trial & Error eingebläut hast ;)

Soweit wird es nicht kommen.

AlArenal hat gesagt.:
Ist doch kein Hexenwerk sich eben in nem Buch Kapitel über Imports und Packages reinzuziehen.

Habe vorher sogar die Suchfunktion im Forum benutzt.
Es ist halt kommunikativer seine Fragen in einem Forum zu stellen.
Würden alle Ihre Problemchen mit einem Buch lösen
können, währe hier bald tote Hose.

Danke für Deine Bemühung und Zeit.

Tom
 

AlArenal

Top Contributor
Sicher ist ein Forum kommunikativer, aber das sind Basics die jedes Buch abdeckt und die auch ziemlich banal sind und auf wenigen Seiten abgefrühstückt sind. Dazu reint ne unidirektionale Kommunikation völlig aus und da muss man nicht mit anderen über eigene Vermutungen philosophieren.

Was mich immer etwas nervt ist, dass viele einfach erst aus Bequemlichkeit ins Forum posten, anstatt selbst nach einer Lösung zu suchen, zumal du in deinem Fall schon selbst was von "Vermutung" schrubst. Da ist es doch das Naheliegendste der Welt diese Vermutung zu überprüfen. Und wenn du ein halbes Dutzend Bücher hast - umso einfacher! (vorausgesetzt es sind Java-Bücher und nicht Harry Potter :p ). Oder sind deine Bücher nur dazu da um bei den Weibern Eindruck zu schinden?

So vergeudet man aber auch die Zeit derer, die den Post erstmal lesen (und dann entschieden ob sie was antworten oder nicht).
 

tom g.

Aktives Mitglied
AlArenal hat gesagt.:
Sicher ist ein Forum kommunikativer, aber das sind Basics die jedes Buch abdeckt und die auch ziemlich banal sind und auf wenigen Seiten abgefrühstückt sind. Dazu reint ne unidirektionale Kommunikation völlig aus und da muss man nicht mit anderen über eigene Vermutungen philosophieren.

OK.

AlArenal hat gesagt.:
Oder sind deine Bücher nur dazu da um bei den Weibern Eindruck zu schinden?

Mit fast 40 Jahren und etlichen Ehejahren brauch ich das nicht mehr; :wink:

Aber es gibt nun mal Situationen wo es umständlicher ist die Bücher heraus zu suchen, als mal kurz im Forum nachzufragen. In so einer Situation befinde ich mich gerade, und hatte auch bei Google kein Glück.

Aber ich werde jetzt mal "vorsichtiger" Posten.

Lerne ja auch gerne dazu.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Eigene Datenstruktur um eine Menge zu speichern Allgemeine Java-Themen 3
_user_q Was brauche ich, um eine eigene "Search for updates"-Funktion einzubauen? Allgemeine Java-Themen 1
pizza_dox_9999 Wie füge ich eine "eigene" ScriptEngine dem ScriptEngineManager? Allgemeine Java-Themen 3
E Input/Output Eigene Datei mit java öffnen Allgemeine Java-Themen 9
missy72 Klassen Eigene Klasse MessageWindow ähnlich der Alert Klasse Allgemeine Java-Themen 2
J Eigene Api erstellen und dann auch verwenden - Ordnerstruktur Allgemeine Java-Themen 1
RalleYTN Eigene ScriptEngine? Allgemeine Java-Themen 14
L Eigene Dependency Injections definieren? Allgemeine Java-Themen 4
K Eigene API erstellen? Allgemeine Java-Themen 13
T Best Practice Eigene GUI programmieren | MouseMotion Detection Allgemeine Java-Themen 3
M Eigene forEach()-Methode funktioniert nicht. Allgemeine Java-Themen 2
J eigene Java Bibliothek Allgemeine Java-Themen 2
M Output einer anderen/externen .jar in eigene JTextArea Allgemeine Java-Themen 4
B Klassen Eigene Klasse als Array benutzen Allgemeine Java-Themen 3
D Eigene/r Collection/Container Allgemeine Java-Themen 3
F Eigene .jar mit anderer .jar öffnen Allgemeine Java-Themen 7
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
H Best Practice Ideensuche: Flexibel hinzufügbare eigene Parser Allgemeine Java-Themen 6
T OOP Die eigene Bruchklasse Allgemeine Java-Themen 11
P Eigene Exception Klasse Allgemeine Java-Themen 7
J Java - Eigene DLL importieren Allgemeine Java-Themen 25
B JTable eigene Daten Add Methode Allgemeine Java-Themen 2
S OOP Problembereichsmodell: Bestehende Framework Klasse in eigene Klassenstruktur einbinden Allgemeine Java-Themen 9
E Eigene Exception Klasse erstellen Allgemeine Java-Themen 3
S Methoden Eigene Klasse als Rückgabewert Allgemeine Java-Themen 6
S eigene regEx schreiben Allgemeine Java-Themen 4
O Collections Eigene Methodenzusicherung bei Collections als Parameter Allgemeine Java-Themen 2
M Eigene Klasse verschlüsselt in Datei speichern Allgemeine Java-Themen 13
N Geodaten für eigene Routenplanung Allgemeine Java-Themen 5
M Problem beim schreiben einer eigene generische Klasse Hashtable Allgemeine Java-Themen 11
C Eigene Sounddateien schreiben Allgemeine Java-Themen 12
M Problem beim schreiben einer eigene generische Klasse LinkedList Allgemeine Java-Themen 34
M Best Practices Exception Handling für eigene library Allgemeine Java-Themen 8
M Eigene Factory Klasse Allgemeine Java-Themen 21
M eigene Klasse durch Composition mit java.io.File erweitern Allgemeine Java-Themen 3
S eigene Update Funktion Allgemeine Java-Themen 5
H2SO3- getMethods(): eigene methoden rausfinden Allgemeine Java-Themen 4
C eine eigene Javadoc erstelen Allgemeine Java-Themen 3
Kr0e Eigene RMI Implementierung Allgemeine Java-Themen 3
S Eigene Bibliothek Allgemeine Java-Themen 2
M Eigene Dateiendung? Allgemeine Java-Themen 3
M Plugins für eigene Programme Allgemeine Java-Themen 3
S Eigene Events feuern Allgemeine Java-Themen 3
S Instanz in einer Klasse erstellen, und dem Konstruktor die eigene Klasse mitgeben Allgemeine Java-Themen 4
A Eigene Java Plugins entwickeln - wie optimal? Allgemeine Java-Themen 14
R Eigene ArrayList vom Typ Short, Integer oder Double Allgemeine Java-Themen 4
U Eigene "Dining Philosopher" Interpretation weckt Philos nie auf Allgemeine Java-Themen 2
0x7F800000 Wovon eigene Events für spezialisierte JComponents ableiten? Allgemeine Java-Themen 2
SuperSeppel13 Packete der Java Bibliothek ins eigene Prjekt integrieren Allgemeine Java-Themen 4
P Eigene Klasse kopieren die auf sich selbst refferenziert Allgemeine Java-Themen 8
G Umgebungsvariabeln auslesen (Path, Temp, oder eigene) Allgemeine Java-Themen 2
T Eigene PID ermitteln! Allgemeine Java-Themen 3
D Icon für eigene Dateiendung Allgemeine Java-Themen 7
G Eigene "Speicherverwaltung" Allgemeine Java-Themen 5
H eigene Annotations Allgemeine Java-Themen 2
S eigene Klasse die JButton extended - als Liste! Allgemeine Java-Themen 6
D Performance: ArrayList vs. Array vs. "Eigene Liste&quot Allgemeine Java-Themen 8
A Eigene Wrapper-Klassen Allgemeine Java-Themen 2
J Kann eigene Klasse nicht ermitteln Allgemeine Java-Themen 4
M Wann verwendet man PropertyChangedEvents, wann eigene? Allgemeine Java-Themen 3
J OpenOffice.org Events in eigene Anwendung umleiten Allgemeine Java-Themen 4
U eigene Datenstruktur ArrayList<String> nach Object [][ Allgemeine Java-Themen 2
N Observer/Observable der JAVA-API od. eigene Implementierung Allgemeine Java-Themen 2
B eigene Klassen verkaufen Allgemeine Java-Themen 2
W eigene event-Klasse, event posten Allgemeine Java-Themen 2
reibi Eigene exception mit feld "serialVersionUID" Allgemeine Java-Themen 3
M Eigene .jar in anderes Programm importieren[eclipse] Allgemeine Java-Themen 6
E Eigene Exception Allgemeine Java-Themen 11
Q Bibliotheken mit ins eigene Jar aufnehmen Allgemeine Java-Themen 4
M Eigene Exception Klasse Allgemeine Java-Themen 4
M eigene Objekte vergleichen Allgemeine Java-Themen 6
K log4j - eigene Info-Ausgaben Allgemeine Java-Themen 5
G Performance JDOM - DOM - eigene HashMap (SAX) Allgemeine Java-Themen 2
G JWindow verschieben bei mousedragged auf eigene titelleiste Allgemeine Java-Themen 3
N Methoden in eigene Dateien auslagern? Allgemeine Java-Themen 10
B Eigene Datentypen Allgemeine Java-Themen 5
G Brauche hilfe bei JMF: Wie eigene Streaming Data Source! Allgemeine Java-Themen 4
G eigene klassen die ein jar verwenden als neues jar erstellen Allgemeine Java-Themen 4
O Externe Jars in eigene JAr packen in Eclipse Allgemeine Java-Themen 5
R Updateprozedur ü. Internet fürs eigene Programm? Allgemeine Java-Themen 24
G eigene uhrzeit in einer java applikation führen Allgemeine Java-Themen 19
R Eigene Konfigurationsdatei für größere Projekte. Allgemeine Java-Themen 4
J Eigene Callback Methode? Allgemeine Java-Themen 3
S eigene evetns erstellen Allgemeine Java-Themen 5
K eigene GUI Komponente wird nicht angezeigt Allgemeine Java-Themen 3
D Eigene Classes aus anderen .java-Dateien Allgemeine Java-Themen 2
G Eigene PrintService Implementierung. Allgemeine Java-Themen 5
C Die Konsole ins eigene Programm einbauen Allgemeine Java-Themen 5
B Quellcode einer Java libary finden um zu copy & paste'n Allgemeine Java-Themen 5
OnDemand PDF Libary für Formulare Allgemeine Java-Themen 7
H Class 'java.io.BuferedReader' is not present in JRE Emulation Libary | GWT Fehler?! Allgemeine Java-Themen 0
D Warum kann ich eine (deflaut) Klasse aus einer Libary in einem anderen Projekt benutzen? Allgemeine Java-Themen 3
F LWJGL in keinem Java libary Pfad? Allgemeine Java-Themen 2
X Image Processing libary für JavaSE und Android Allgemeine Java-Themen 2
G java.libary.path Allgemeine Java-Themen 7
Y Google Map + JSP Tag Libary Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben