Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten.

DaCrazyJavaExpert

Bekanntes Mitglied
Hey,
wie setzte ich den Wert einer Variable in einer Datenbank auf 1. Standertmäßig ist der Wert einer nicht initialisierten Variable ja 0. Allerdings initialisiere ich die Variable, die ich auf 1 haben will mit den Werten der Datenbank. Ich hoffe es war verständlich was ich meine, ansonsten sagt es mir bitte und ich versuche es besser zu beschreiben, weil auf eine Lösung komme ich irgendwie selber nicht.

Danke!
 

Robat

Top Contributor
Kannst du nicht einfach den Default-Wert der Spalte auf 1 ändern?
ALTER TABLE tablename ALTER column SET DEFAULT value;
 

DaCrazyJavaExpert

Bekanntes Mitglied
Kannst du nicht einfach den Default-Wert der Spalte auf 1 ändern?
ALTER TABLE tablename ALTER column SET DEFAULT value;
Und wie mache ich das im Code? Hab sowas noch gar nicht gekannt. Muss ich einfach nur eine Konstante anlegen?
#EDIT einfach nur Konstante anlegen bringt nichts. Wie füge ich die Konstante in den CODE so ein, dass die Anweisung auch funktioniert:
Java:
private final static String SET_DEFAULT_COOKIES_PRO_KLICK = "ALTER TABLE COOKIE_VALUES ALTER COOKIES_PRO_KLICK SET DEFAULT 1";
 

Robat

Top Contributor
Warum setzt du den Wert nicht direkt per SQL - also wenn du die DB erstellst?
Um was für eine DB handelt es sich denn? Embedded?
 

DaCrazyJavaExpert

Bekanntes Mitglied
Erstellen so:
Java:
    private final static String CREATE_DATA_TABLE = "CREATE TABLE COOKIE_VALUES ("
            + "ID INT NOT NULL GENERATED BY DEFAULT AS IDENTITY, " + "COOKIES_PRO_KLICK INT, " + "ANZAL_COOKIES INT, "
            + "PRIMARY KEY (ID) " + ")";
    private final static String ADD_INSTRUCTIONS = "INSERT INTO COOKIE_VALUES VALUES (DEFAULT, ?, ?)";
    private final static String SET_DEFAULT_COOKIES_PRO_KLICK = "ALTER TABLE COOKIE_VALUES ALTER COOKIES_PRO_KLICK SET DEFAULT 1";

private static Connection createConnection() throws ClassNotFoundException, SQLException {
        Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
        Connection connection = DriverManager.getConnection("jdbc:derby:database/cookie;create=true");
        return connection;
    }

    public static void registerConnectionInMain() {
        try (Connection connection = createConnection()) {
            DatabaseMetaData metaData = connection.getMetaData();
            ResultSet tables = metaData.getTables(null, "APP", "COOKIE_VALUES", null);
            if (!tables.next()) {
                Statement instructions = connection.createStatement();
                instructions.executeUpdate(CREATE_DATA_TABLE);
                instructions.close();
            }
            PreparedStatement queryInstructions = connection.prepareStatement("SELECT * FROM COOKIE_VALUES");
            ResultSet resultSet = queryInstructions.executeQuery();
            while (resultSet.next()) {
                id = resultSet.getString("ID");
                cookies_Pro_Klick = resultSet.getInt("COOKIES_PRO_KLICK");
                anzahl_Cookies = resultSet.getLong("ANZAL_COOKIES");
                CookieClickerGUI.setCookiesProClick(cookies_Pro_Klick);
                CookieClickerGUI.setAnzahlCookies(anzahl_Cookies);
            }
        } catch (ClassNotFoundException e) {
            System.err.println("Database driver not found!");
        } catch (SQLException e) {
            System.err.println("SQL error");
            e.printStackTrace();
        }
    }

    public static void registerConnectionInListener() {
        try (Connection connection = createConnection()) {
            PreparedStatement insertStatement = connection.prepareStatement(ADD_INSTRUCTIONS);
            insertStatement.setInt(1, CookieClickerGUI.getCookiesProClick());
            insertStatement.setLong(2, CookieClickerGUI.getAnzahlCookies());
            insertStatement.executeUpdate();
        } catch (ClassNotFoundException e) {
            System.err.println("Database driver not found!");
        } catch (SQLException e) {
            System.err.println("SQL error");
            e.printStackTrace();
        }
    }

Wie man die Werte bearbeitet weiß ich nicht
 

DaCrazyJavaExpert

Bekanntes Mitglied
Weiß eventuell noch jemand, wie man in JDBC den Defaultwert von Datensätzen ändert. Durch google hab ich jetzt nichts wirklich hilfreiches gefunden.
Danke!
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ich verstehe nicht ganz... braucht man dazu nicht noch irgendeine Klasse, wie Resultset oder so? Ich kenne mich mit den Klassen in JDBC noch nicht so gut aus. Und wonach ich Googeln sollte, fällt mir auch nichts ein. Ich weiß nicht, ob ich gerade einfach irgendwie auf dem Schlauch stehe, oder es wirklich nicht weiß.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Du musst da nichts anderes machen, als zum erstellen der Datenbank ;)
Ich stehe wirklich auf dem Schlauch... keine Ahnung was grade los ist.

#Edit: Ich habe jetzt das hier
Java:
private final static String SET_DEFAULT_COOKIES_PRO_KLICK = "ALTER TABLE COOKIE_VALUES ALTER COOKIES_PRO_KLICK SET DEFAULT 1";
//Das hier in der Gliechen methode, in der ich die Tabelle erstelle
instructions.executeUpdate(SET_DEFAULT_COOKIES_PRO_KLICK);

Klappen tuts jedenfalls nicht. Sorry, ich bin grad richtig neben der Spur.
 
Zuletzt bearbeitet:

DaCrazyJavaExpert

Bekanntes Mitglied
Und de Wert hast du wo eingefügt?
Wie jetzt? Also hier füge ich ihn in die Datenbank ein:
Java:
//viel Code...

private final static String CREATE_DATA_TABLE = "CREATE TABLE COOKIE_VALUES ("
            + "ID INT NOT NULL GENERATED BY DEFAULT AS IDENTITY, " + "COOKIES_PRO_KLICK INT, " + "ANZAL_COOKIES INT, "
            + "PRIMARY KEY (ID) " + ")";
    private final static String ADD_INSTRUCTIONS = "INSERT INTO COOKIE_VALUES VALUES (DEFAULT, ?, ?)";
    private final static String SET_DEFAULT_COOKIES_PRO_KLICK = "ALTER TABLE COOKIE_VALUES ALTER COOKIES_PRO_KLICK SET DEFAULT 1";

    private static Connection createConnection() throws ClassNotFoundException, SQLException {
        Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
        Connection connection = DriverManager.getConnection("jdbc:derby:database/cookie;create=true");
        return connection;
    }

    public static void registerConnectionInMain() {
        try (Connection connection = createConnection()) {
            DatabaseMetaData metaData = connection.getMetaData();
            ResultSet tables = metaData.getTables(null, "APP", "COOKIE_VALUES", null);
            if (!tables.next()) {
                Statement instructions = connection.createStatement();
                instructions.executeUpdate(CREATE_DATA_TABLE);
                instructions.executeUpdate(SET_DEFAULT_COOKIES_PRO_KLICK);
                instructions.close();
            }
            PreparedStatement queryInstructions = connection.prepareStatement("SELECT * FROM COOKIE_VALUES");
            ResultSet resultSet = queryInstructions.executeQuery();
            while (resultSet.next()) {
                id = resultSet.getString("ID");
                cookies_Pro_Klick = resultSet.getInt("COOKIES_PRO_KLICK");
                anzahl_Cookies = resultSet.getLong("ANZAL_COOKIES");
                CookieClickerGUI.setCookiesProClick(cookies_Pro_Klick);
                CookieClickerGUI.setAnzahlCookies(anzahl_Cookies);
            }
        } catch (ClassNotFoundException e) {
            System.err.println("Database driver not found!");
        } catch (SQLException e) {
            System.err.println("SQL error");
            e.printStackTrace();
        }
    }

    public static void registerConnectionInListener() {
        try (Connection connection = createConnection()) {
            PreparedStatement insertStatement = connection.prepareStatement(ADD_INSTRUCTIONS);
            insertStatement.setInt(1, CookieClickerGUI.getCookiesProClick());
            insertStatement.setLong(2, CookieClickerGUI.getAnzahlCookies());
            insertStatement.executeUpdate();
        } catch (ClassNotFoundException e) {
            System.err.println("Database driver not found!");
        } catch (SQLException e) {
            System.err.println("SQL error");
            e.printStackTrace();
        }
    }

Und hier nehme ich ihn aus der Datenbank:
Java:
private void initialVariables() {
        this.cookiesProClick = Database.getCookies_Pro_Klick();
        this.anzahlCookies = Database.getAnzahl_Cookies();
    }

this.lblCookiesProKlick = new JLabel("C/K: " + getCookiesProClick());


Das rot eingekreiste ist der Datensatz. Das soll allerding 1 statt 0 stehen.
 

mrBrown

Super-Moderator
Mitarbeiter
Du fügst nie werte der Tabelle hinzu, deshalb ist dein ResultSet beim Abfragen leer, deine while-Schleife wird nie betreten und die Werte bleiben bei 0 stehen.


Kannst du mal deine gesamte Architektur kurz mal darlegen? Das sieht sehr komisch aus was du da machst, und scheint mir Quelle für viele Probleme...
 

DaCrazyJavaExpert

Bekanntes Mitglied
Kannst du mal deine gesamte Architektur kurz mal darlegen?
Meinst du den kompletten Code? Sind um die 550 Zeilen oder so. Ich glaube die willst du dir nicht antun. Es hat eigentlich alles mit der Datenspeicherung funktioniert und Die Daten wurden auch gespeichert, also wenn ich auf den Cookie klicke werden die "Cookies" immer +1(cookiesProKlick) aufgerechnet und in die Datenbank eingetragen (durch einen Listener). Und beim Programmstart, hab ich die Cookies alle wieder. Allerdings rechne ich die Cookies immer +cookiesProKlick, und da der Deufaultwert dieses Datensatzes 0 ist, werden keine Cookies dazugezählt. Mein Problem liegt eigentlich nur darin, den Defaultwert auf 1 zu setzen.
Du kannst hier ja nochmal anworten was du genau "brauchst", ich sende es dann hier ein, bevor ich den kompletten Code poste. :)
Danke für deine Hilfe bis dato! •.•
 

mrBrown

Super-Moderator
Mitarbeiter
Ich meine nicht den genauen Code, sondern nur was wo auf was zugreift.

Dein geposteter DB-Code setzt irgendwelche statischen Variablen in der GUI und gleichzeitig liest die GUI über statische Methoden die Werte aus der DB aus - das klingt nach einer heillosen Katastrophe ;)

Hast du MVC oder so versucht umzusetzen?
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ich meine nicht den genauen Code, sondern nur was wo auf was zugreift.

Dein geposteter DB-Code setzt irgendwelche statischen Variablen in der GUI und gleichzeitig liest die GUI über statische Methoden die Werte aus der DB aus - das klingt nach einer heillosen Katastrophe ;)

Hast du MVC oder so versucht umzusetzen?
Was ist denn die MVC?
Ok ich versuche mal relevante Codesnipsel rauszusuchen und auch mein Vorgehen dabei ein wenig zu beschreiben.

Und ein Datensatz ist doch ein "Wert"/sowas wie eine Variable in einer Datenbank? Oder verstehe ich da was falsch?
 

mrBrown

Super-Moderator
Mitarbeiter

DaCrazyJavaExpert

Bekanntes Mitglied
Also hier die gesamte Datenbankklasse, mit ein paar Anmerkungen:
Java:
public class Database {

    private final static String CREATE_DATA_TABLE = "CREATE TABLE COOKIE_VALUES ("
            + "ID INT NOT NULL GENERATED BY DEFAULT AS IDENTITY, " + "COOKIES_PRO_KLICK INT, " + "ANZAL_COOKIES INT, "
            + "PRIMARY KEY (ID) " + ")"; //Tabelle erzeugen
    private final static String ADD_INSTRUCTIONS = "INSERT INTO COOKIE_VALUES VALUES (DEFAULT, ?, ?)"; //Datensätzte setzen
    private final static String SET_DEFAULT_COOKIES_PRO_KLICK = "ALTER TABLE COOKIE_VALUES ALTER COOKIES_PRO_KLICK SET DEFAULT 1"; //Defaultwert setzten... weiß nur nicht, wie ichs im Code unterbringen soll

    private static String id;
    private static int cookies_Pro_Klick;
    private static long anzahl_Cookies;

    public static int getCookies_Pro_Klick() {
        return cookies_Pro_Klick;
    }

    public static void setCookies_Pro_Klick(int cookies_Pro_Klick) {
        Database.cookies_Pro_Klick = cookies_Pro_Klick;
    }

    public static long getAnzahl_Cookies() {
        return anzahl_Cookies;
    }

    public static void setAnzahl_Cookies(int anzahl_Cookies) {
        Database.anzahl_Cookies = anzahl_Cookies;
    }

    private static Connection createConnection() throws ClassNotFoundException, SQLException {
        Class.forName("org.apache.derby.jdbc.EmbeddedDriver");
        Connection connection = DriverManager.getConnection("jdbc:derby:database/cookie;create=true");
        return connection;
    }

    public static void registerConnectionInMain() { //bei Programmstart werden alle Daten in die GUI eingetragen
        try (Connection connection = createConnection()) {
            DatabaseMetaData metaData = connection.getMetaData();
            ResultSet tables = metaData.getTables(null, "APP", "COOKIE_VALUES", null);
            if (!tables.next()) { //Nur erstellen wenn Datenbank noch nicht vorhanden ist
                Statement instructions = connection.createStatement();
                instructions.executeUpdate(CREATE_DATA_TABLE);
                instructions.close();
            }
            PreparedStatement queryInstructions = connection.prepareStatement("SELECT * FROM COOKIE_VALUES"); //Von der Datenbank COOKIE_VALUES Daten holen
            ResultSet resultSet = queryInstructions.executeQuery();
            while (resultSet.next()) {
                id = resultSet.getString("ID");
                cookies_Pro_Klick = resultSet.getInt("COOKIES_PRO_KLICK"); //Daten holen
                anzahl_Cookies = resultSet.getLong("ANZAL_COOKIES"); //Daten holen
                CookieClickerGUI.setCookiesProClick(cookies_Pro_Klick); //Daten in GUI schreiben
                CookieClickerGUI.setAnzahlCookies(anzahl_Cookies); //Daten in GUI schreiben
            }
        } catch (ClassNotFoundException e) {
            System.err.println("Database driver not found!");
        } catch (SQLException e) {
            System.err.println("SQL error");
            e.printStackTrace();
        }
    }

    public static void registerConnectionInListener() { //Daten werden in der Datenbank bei jedem klick auf den Cookie aktualisiert/mit den neuen Daten überschrieben
        try (Connection connection = createConnection()) {
            PreparedStatement insertStatement = connection.prepareStatement(ADD_INSTRUCTIONS);
            insertStatement.setInt(1, CookieClickerGUI.getCookiesProClick()); //aus Programm (GUI) holen, in Datenbank setzten
            insertStatement.setLong(2, CookieClickerGUI.getAnzahlCookies()); //aus Programm (GUI) holen, in Datenbank setzten
            insertStatement.executeUpdate();
        } catch (ClassNotFoundException e) {
            System.err.println("Database driver not found!");
        } catch (SQLException e) {
            System.err.println("SQL error");
            e.printStackTrace();
        }
    }

    public static String getId() {
        return id;
    }

    public static void setId(String id) {
        Database.id = id;
    }
}
Und hier die Main, in der alles beginnt:
Java:
public class Main {

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Database.registerConnectionInMain(); //Datenbank "registrieren", also Daten holen und in Programm (GUI) einsetzen
                    CookieClickerGUI frame = new CookieClickerGUI();
                    frame.start(); // Fenster sichtbar machen
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}

Und hier Ausschnitte aus der GUI-Klasse:
Java:
//cookiesProClick bekommen, in der Methode [initialKomponents,welche im KlassenKonstruktor aufgerufen wird:

this.lblCookiesProKlick = new JLabel("C/K: " + getCookiesProClick());

    private void initialVariables() {
        this.cookiesProClick = Database.getCookies_Pro_Klick(); //Werte aus der Datenbank cookiesProKlick zuweisen.
        this.anzahlCookies = Database.getAnzahl_Cookies();
    }
//zu den ganzen Variablen hab ich natürlich noch Getter und Setter.

Java:
//hier der Listener
private void registerCookieListener() {
        this.lblCookie.addMouseListener(new MouseListener() {

            @Override
            public void mouseReleased(MouseEvent e) {
                lblCookieClicked.setVisible(false); //Nur für die Klickanimation
                lblCookie.setVisible(true);
            }

            @Override
            public void mousePressed(MouseEvent e) {
                anzahlCookies += cookiesProClick; //Die Anzahl der Cookies um cookiesProClick erhöhen. Wobei der Defaultwert 0 ist und eigentlich 1 sein sollte.
                lblAnzahlCookies.setText("Cookies: " + anzahlCookies); //"Zahl"/Text vom cookieAnzahl label aktualisieren.
                lblCookie.setVisible(false);
                lblCookieClicked.setVisible(true);
                Database.registerConnectionInListener(); //Wenn Cookie geklickt wird, Daten in Datenbank aktualisieren/überschreiben.
            }
Vieles Danke! :)


PS: Ich sende, gern nochmehr ein, wenn nötig, Hauptsache, ich hab irgenwann die Lösung :D
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ne, da fehlen noch einige Basics ;)
:( Naja, die im Buch beschriebe Basics halt.

Als aller erstes: Bei allen Variablen, die nicht static final sind, das static entfernen und dir überlegen, wie man das ohne machen könnte ;)
Mit Gettern und Settern, und einem Objekt der Klasse, würde mir jetzt so spontan einfallen. Aber wie bringt mich das weiter? Macht es denn einen Unterschied ob static oder nicht? Ich werds trotzdem mal ändern.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Hey,
tut mir Leid dass ich solange nichts geschrieben habe. Ich habe nun die static-Variablen non-static gemacht.
Außerdem hab ich noch geschaut, ob ich doch noch selber auf die Lösung komme, wurde bis dato aber noch nichts damit.
Also hier die neuen Variablen:
Java:
CookieClickerGUI guiVarObject = new CookieClickerGUI(); //Object holen
                guiVarObject.setCookiesProClick(cookies_Pro_Klick); //Daten in GUI schreiben
                guiVarObject.setAnzahlCookies(anzahl_Cookies); //Daten in GUI schreiben

CookieClickerGUI guiVarObject = new CookieClickerGUI(); //Objekt holen
            insertStatement.setInt(1, guiVarObject.getCookiesProClick()); //aus Programm (GUI) holen, in Datenbank setzten
            insertStatement.setLong(2, guiVarObject.getAnzahlCookies()); //aus Programm (GUI) holen, in Datenbank setzten

Was wäre denn jetzt der nächste Schritt? Danke!
 

DaCrazyJavaExpert

Bekanntes Mitglied
Macht es Sinn, zwei mal das GUI-Objekt zu erstellen?
Wenn du es schon so schreibst, wahrscheinlich nicht :D.
Aber dann muss das geholte Object ja auch static sein. Um auf die statischen Methoden zugrifen zu können. Ich dachte sowas sollte man vermeiden.
Java:
private static CookieClickerGUI guiVarObject = new CookieClickerGUI();
 

mrBrown

Super-Moderator
Mitarbeiter
Ja, static solltest du auch vermeiden ;)

In deinem Code greift die Datenbank auf die GUI zu - macht das vllt andersrum mehr Sinn?
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ja, static solltest du auch vermeiden ;)

In deinem Code greift die Datenbank auf die GUI zu - macht das vllt andersrum mehr Sinn?
Also, dass die GUI auf die Datenbank zugreift? Wie soll ich das denn machen? Es ist eher aufgeteilt, wirkt jedenfalls so für mich. Ein paar Variablen werden von der GUI für die Datenbank genommen und ein paar Variablen von der Datenbank in die GUI.
 

mrBrown

Super-Moderator
Mitarbeiter
Indem die GUI die Datenbank kennt, und die eine Methode speichern(int ..., int ...) hat ;)

Guck dir mal was zu MVC an ;)
 

DaCrazyJavaExpert

Bekanntes Mitglied
Indem die GUI die Datenbank kennt, und die eine Methode speichern(int ..., int ...) hat ;)
Hab ich das nicht schon mit der Methode registerConnectionInListener() gemacht, nur ohne Parameter halt?
Warum muss das so kompliziert sein :(. Ich will doch nur einen einzigen Wert in eine 1 umwandeln. Geht das wirklich nicht einfacher?
 
Zuletzt bearbeitet:

mrBrown

Super-Moderator
Mitarbeiter
Natürlich geht das einfacher - dir fehlen aber noch ziemlich viele Grundlagen.

Du kannst keinen Wert in einer 1 umwandeln - du musst erstmal überhaupt einen Wert haben.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Natürlich geht das einfacher - dir fehlen aber noch ziemlich viele Grundlagen.

Du kannst keinen Wert in einer 1 umwandeln - du musst erstmal überhaupt einen Wert haben.
Ok hab mich falsch ausgedrückt. Den Defaultwert des Datensatzes COOKIES_PRO_KLICK auf 1 setzen, das will ich.
Ja ich weiß, ich bin noch nicht allzu lange am Programmieren. Mit Datenbanken setzte ich mich das erste mal beim Programmieren auseinander. Ich versuche es ja irgendwie zu lernen, aber das ist auch nicht so leicht. :(
 

mrBrown

Super-Moderator
Mitarbeiter
Den Defaultwert des Datensatzes COOKIES_PRO_KLICK auf 1 setzen, das will ich.
Du hast den Unterschied zwischen Spalte und Datensatz nicht verstanden.
Die Spalte COOKIES_PRO_KLICK hat schon den Defaultwert 1.

Mit Datenbanken setzte ich mich das erste mal beim Programmieren auseinander. Ich versuche es ja irgendwie zu lernen, aber das ist auch nicht so leicht.
Dann fang doch nicht direkt mit Datenbanken an, wenn dir noch andere Grundlagen fehlen.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Du hast den Unterschied zwischen Spalte und Datensatz nicht verstanden.
Die Spalte COOKIES_PRO_KLICK hat schon den Defaultwert 1.


Dann fang doch nicht direkt mit Datenbanken an, wenn dir noch andere Grundlagen fehlen.
Ich bin nach meinem Buch vorgegangen. Und ein CookieClicker ist doch wohl etwas für Anfänger, nur irgendiwe muss ich ja auch die Daten speichern.

#EDIT: Wir können diesen Thread auch einfach "schließen"(Obwohl ich sehr wahrscheinlich noch Hilfe brauche:(), dann kann ich versuchen es selber herrauszufinden. Du hast mir schon so viel geholfen und ich bin noch nicht viel weiter gekommen. Und bestimmt gehe ich dir schon längst auf den Geist. Danke, für deine ganze Hilfe!
(Also jetzt nicht falsch verstehen: ich bin einfach noch zu unerfahren für Datenbaken, wie es scheint. + ich bin dir Dankbar für die Hilfe!)
 
Zuletzt bearbeitet:

DaCrazyJavaExpert

Bekanntes Mitglied
Der einfachste Weg wäre, das einfach in eine Textdatei zu schreiben ;)
Also serialisieren? Ich wollte es ja extra mit der Datenbank probieren, damit ich ihr "näherkomme" weil Datenbanken sind später ja schon wichtig(Oder?). Und jetzt bin ich schon so weit gekommen. (Ich hatte vor meinem jetztigen Problem das Problem, dass die Daten nicht abgerufen/eingetragen worden sind. Dies hab ich dann allerdings nach 2 und halb Wochen selbstständig lösen können.) Wäre schade alles abzubrechen.

Jetzt hab ich noch eine Frage, wenn es ok ist ;) .
Du meintest ja vorhin :
Die Spalte COOKIES_PRO_KLICK hat schon den Defaultwert 1.
Aber warum wird dann immernoch 0 im Programm angezeigt? Das verstehe ich nicht. Ich dachte der Defaultwert eines Datensatzen ist 0 und nicht 1.
Ich hatte mal probiert, per Code den cookiesProClick-Wert +1 zu rechnen. Dann wurde anzahlCookies auch immer +1 addiert. Allerdings wurde dann bei jedem Programmstart wieder anzahlCookies +1 gerechnet. (<- Das war einer meiner ersten Versuche, mein Problem zu lösen.)
Danke dass du mir dir ganze Zeit trotzdem hilfst :eek:. Hätte nicht jeder gemacht, ich glaube die meisten wären schon nach den ersten drei Beiträgen von mir genervt gewesen.:rolleyes:
 

mrBrown

Super-Moderator
Mitarbeiter
Also serialisieren? Ich wollte es ja extra mit der Datenbank probieren, damit ich ihr "näherkomme" weil Datenbanken sind später ja schon wichtig. Und jetzt bin ich schon so weit gekommen. (Ich hatte vor meinem jetztigen Problem, das Problem, dass die Daten nicht angerufen/eingetragen worden sind. Dies hab ich dann allerdings nach 2 und halb Wochen selbstständig lösen können.) Wäre schade alles abzubrechen.
Natürlich sind Datenbanken wichtig - noch wichtiger sind aber andere Dinge ;)

Aber warum wird dann immernoch 0 im Programm angezeigt? Das verstehe ich nicht. Ich dachte der Defaultwert eines Datensatzen ist 0 und nicht 1.
Der Defaultwert für die eine Spalte ist 1!
Wenn du eine neue Zeile einfügst, und für diese Spalte keinen Wert angibst, dann wird der auf 1 gesetzt. Das machst du aber nirgendwo.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Natürlich sind Datenbanken wichtig - noch wichtiger sind aber andere Dinge ;)


Der Defaultwert für die eine Spalte ist 1!
Wenn du eine neue Zeile einfügst, und für diese Spalte keinen Wert angibst, dann wird der auf 1 gesetzt. Das machst du aber nirgendwo.
Sorry, das verstehe ich nicht ganz.
Also ich habe ja ein Spalte hinzugefügt. Und warum ist da der Deufaultwert nicht 1? (Im Internet hab ich übrigens gelesen, dass der Defaultwert für Strings null und für Zahlen 0 ist. Ich weiß jetzt nicht ob ich etwas vollkommen falsch verstehe oder...!
Oder meinst du mit "für die Spalte keinen Wert angibst" die ID? Ich hab einer Spalte erstmal ja keinen Wert zugewiesen, sondern ja eigentlich nur eine undefinierte Variable, welche definiert wird, wenn etwas geschieht, was ich noch nicht eingebaut habe. Also eigentlich ist dieser Spalte ja noch kein Spalt zu gewiesen.

Sorry für die ganzen Fragen, wird mir selber langsam ein Bisschen unangenehm, dass ich fast nichts kapiere. :(
 

Dukel

Top Contributor
Ich würde das Programm umschreiben oder neumachen und die Daten erstmal im Ram behalten, dann erweitern, dass die Daten in einer Datei (Textdatei) gespeichert wird und ganz, ganz viel später kannst du dies dann mit einer DB machen.
 

DaCrazyJavaExpert

Bekanntes Mitglied
Ich würde das Programm umschreiben oder neumachen und die Daten erstmal im Ram behalten, dann erweitern, dass die Daten in einer Datei (Textdatei) gespeichert wird und ganz, ganz viel später kannst du dies dann mit einer DB machen.
Dukel, dass hätte ich gemacht, wenn dieses Programm nicht schon längst mein 2. Anlauf wäre, ich daran nicht schon seit über einem Monat sitzen würde und nachdenken würde, wie ich denn jetzt den nächsten Schritt angehen soll. Ich bin jetzt schon soweit gekommen und mir steht fast nichts mehr im Weg das Programm abzuschließen, wenn ich nur diesen blöden Defaultwert hinbekomme. Ich will jetzt nicht aufgeben, das würde mir die Motivation nehmen. Ich denke jetzt schon die ganze Zeit, wie ich das Problem lösen kann.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe der Rows mit höchstem Wert X einer Gruppe y,z ? Datenbankprogrammierung 2
S Daten einer Tabelle vergleichen und ggs neuen Wert einfügen Datenbankprogrammierung 8
B Suche Query um genau einen Wert einer def. Gruppe aus einer Tabelle zu erhalten. Datenbankprogrammierung 2
R Einen Integer-Wert aus einer MySQL DB auslesen Datenbankprogrammierung 2
Z SQL Ergebnis in Integer Wert abspeichern Datenbankprogrammierung 3
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
B SQL-Statement Prüfen ob eine Spalte einen Wert enthält Datenbankprogrammierung 2
Streeber MySQL Funktion gesucht, die angibt, wie oft ein Wert auftritt Datenbankprogrammierung 1
M Derby/JavaDB einen Null-Wert in die Datenbank schreiben Datenbankprogrammierung 7
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
L JTable-DB: Letzter wert wird nicht angezeigt. Datenbankprogrammierung 0
T Wie kann FS einen extra Wert bekommen? Datenbankprogrammierung 1
A Postgres, sql: Inkrementierung allgemein und bis zu einem bestimmten Wert Datenbankprogrammierung 5
AMStyles Kann Wert nicht speichern (MAX VALUE) Datenbankprogrammierung 9
E Wert '0000-00-00 00:00:00' in Datenbank vorhanden Datenbankprogrammierung 41
S ID Wert von Insert über jdbcTemplate.update Datenbankprogrammierung 3
M PL/SQL Fehler "Kein Wert zurückgegeben" Datenbankprogrammierung 4
S JPA NamedQuery mit Enum-Wert Datenbankprogrammierung 4
C Wert in SQL-Abfrage zählen lassen Datenbankprogrammierung 8
F H2:Wie kann man insert eine Reihe "int" wert als blob in table? Datenbankprogrammierung 12
I Tabelle mit "|" getrennten Werten -> einzelnen Wert davon abfragen Datenbankprogrammierung 15
G HQL maximalen Wert Datenbankprogrammierung 2
F Wert des erzeugent Schlüssel ausgeben lassen Datenbankprogrammierung 2
turmaline Default sort Wert Datenbankprogrammierung 3
W MySQL Rückgabewert wenn Wert nicht in DA Datenbankprogrammierung 7
M MySQL MySQL Updat - updatet falschen wert Datenbankprogrammierung 3
S DB auf Wert überprüfen Datenbankprogrammierung 13
O eine Tabelle hat mehrere PrimKey mit dem selben Wert Datenbankprogrammierung 9
E Wert mit letztem Datetime bekommen Datenbankprogrammierung 2
raptorrs Wert zu Zelle hinzu addieren Datenbankprogrammierung 2
P jeden 20 Wert rausholen Datenbankprogrammierung 8
S SQL: Spalte kopieren plus Wert erhöhen Datenbankprogrammierung 4
E Wert in Tabelle nicht loeschen, sondern umbenennen? Datenbankprogrammierung 2
L oracle:ORA-01008: Nicht allen Variablen ist ein Wert zugeord Datenbankprogrammierung 1
P Wie übergebe ich einen NULL Wert in meinem Java-Programm? Datenbankprogrammierung 7
G ResultSet - Wert überprüfen Datenbankprogrammierung 6
V MAX Wert und weitere auslesen Datenbankprogrammierung 2
N Funktion um einen Wert in einem ResultSet zu finden ? Datenbankprogrammierung 5
B Wie kann ich eine Jtable mit Inhalt einer SQL Abfrage füllen Datenbankprogrammierung 14
D Zweckmäßigkeit einer Schlüsseltabelle Datenbankprogrammierung 4
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
N Oracle SQL - Nächst kleineren Namen2 zu einem Namen aus einer Tabelle Datenbankprogrammierung 3
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
pkm Frage zu Encodingproblem bei einer Datenbankanbindung Datenbankprogrammierung 1
B Frage bei einer SQL Query Datenbankprogrammierung 3
F Mapping einer SQL Abfrage in eine Klasse Datenbankprogrammierung 4
J In einer bestimmten Spalte suchen mit Suchfeld (MS SQL) Datenbankprogrammierung 7
S Verbindung von einer Excel Datei zu Java Datenbankprogrammierung 2
J Sql Anfrage nach einer Zeile beenden Datenbankprogrammierung 6
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
S Anmelden an einer msql datennbank Datenbankprogrammierung 1
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
ralfb1105 Oracle Zwei ojdbc Driver in einer Applikation? Datenbankprogrammierung 13
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
Dimax MySQL 10 höchsten Werte aus einer Tabelle ermitteln Datenbankprogrammierung 30
L Speicherverbrauch Java Anwendung mit einer Datenbankanbindung Datenbankprogrammierung 19
temi Wie kann ich "Class" in einer DB speichern? Datenbankprogrammierung 2
F UPDATE - Befehl nur in einer Zeile Datenbankprogrammierung 11
I Oracle Wie ermitteln, welche Benutzer-(!)Tabellen in einer DB sind? Datenbankprogrammierung 1
D MySQL Suche nach Max Value in einer Tabelle Datenbankprogrammierung 7
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
F Java Objekte in einer Datenbank speichern Datenbankprogrammierung 4
MrSnake Hilfe bei erstellen einer DB Datenbankprogrammierung 12
M Wie übergebe ich Datenbankobjekte aus einer sql-Datenbank einer Java Klasse bzw. Instanz Datenbankprogrammierung 7
Z Finde den Fehler: Daten aus einer Access-Datenbank lesen Datenbankprogrammierung 12
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
E Wie kann man mit einer ID-Spalte über eine Parameterübergabe auf eine Seite verweisen? Datenbankprogrammierung 17
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
E Was sind die Vorteile von DB2 im Gegensatz zu einer Oracle-Datenbank? Datenbankprogrammierung 5
E Wie geschieht der konzeptueller Entwurf einer Datenbank Datenbankprogrammierung 1
I SQLite Objekt speichern einer Serialisierter Klasse Datenbankprogrammierung 1
D HSQLDB INSERT INTO in einer For Schleife mit selber ID, machbar? Alternative? Datenbankprogrammierung 7
I Inhalt einer hsqldb anzeigen Datenbankprogrammierung 1
J Realisierung einer DB in Combi mit Java Datenbankprogrammierung 13
Androbin [Serializing] Mehrere Objekte in einer einzigen Datei speichern Datenbankprogrammierung 1
S Auswahl einer Datenbank Datenbankprogrammierung 0
M Derby/JavaDB Speicherplatz einer Zeile bestimmen Datenbankprogrammierung 0
P JPA in einer größeren Java SE Anwendung Datenbankprogrammierung 0
R MySQL Blob aus DB auslesen und einer Tabelle ausgeben Datenbankprogrammierung 7
C H2 Syntax fehler beim erstellen einer Tabelle Datenbankprogrammierung 4
L MySQL Uhrzeit-Format innerhalb einer Tabelle Datenbankprogrammierung 8
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
E Daten einer SQL-Datenbank aus Combobox in labels schreiben Datenbankprogrammierung 6
M Problem beim Erstellen einer Query Datenbankprogrammierung 7
L Datenbankabfrage mit einer Range Datenbankprogrammierung 3
S Anbindung einer Datenbank an Java Datenbankprogrammierung 7
H ResultSet is closed tritt bei JSF aber nicht bei einer Java-Applikation auf Datenbankprogrammierung 10
eskimo328 Datenbankverbindung ohne Passwort im Quelltext bei einer offline Anwendung Datenbankprogrammierung 14
C unverständliches DB Problem (Es ist kein temporärer Systemtabellenbereich mit einer ausreichenden..) Datenbankprogrammierung 5
A Oracle Update Befehl in Datenbank anhand einer Schleife Datenbankprogrammierung 8
Kenan89 Oracle Daten einer Tabelle in Array speichern Oracle Datenbankprogrammierung 10
S 2 Tabellen zu einer zusammenführen, INSERT INTO Fehler Datenbankprogrammierung 5

Ähnliche Java Themen

Neue Themen


Oben