MySQL Datenbankmit glassfish und Netbeans

Juelin

Bekanntes Mitglied
Hallo zusammeen,
ich hoffe Ihr hattet ein schönes Osterfest.
Ich habe natürlich auch über Ostern weiter Java gelernt mit meinem Buch "Java programmieren lernen für Einsteiger".
Nun bin ich am letzten Kapitel: Datenbanken.
Und natürlich hat mich das sehr interessiert.
Ich habe Windows 10, jdk-21, Apache-Netbeans 21, und glassfish 5.0.1.
Als Datenbank habe ich von XAMP MySQL MariaDB 10.1.36-MariaDB installiert. (bild10)
Da in meinem Netbeans noch kein glassfish installiert war habe ich das unter Tools -> Server -> Add glassfish installiert. (bild1 bis bild6)
Während der Installation wurde glassfish 5.0.1 aus dem Internet runter geladen.
Leider geht das Starten der Java DB und/oder MySQL Server at localhost nicht.
Stimmt da irgendwas mit den Einstellungen bei der Installation nicht?
Desweiteren Drivern MariaDB (bild7 bis bild9) mekert er an: Driver-Files fehlen.
Wo krieg ich die den her?
Vielleicht hat da jemand eine Idee.
Danke und Gruß
Jürgen
 

Anhänge

  • bild3.jpg
    bild3.jpg
    127,6 KB · Aufrufe: 0
  • bild4.jpg
    bild4.jpg
    105,6 KB · Aufrufe: 0
  • bild5.jpg
    bild5.jpg
    161,1 KB · Aufrufe: 0
  • bild6.jpg
    bild6.jpg
    422,9 KB · Aufrufe: 0
  • bild7.jpg
    bild7.jpg
    361,9 KB · Aufrufe: 0
  • bild8.jpg
    bild8.jpg
    55,7 KB · Aufrufe: 0
  • bild9.jpg
    bild9.jpg
    58,6 KB · Aufrufe: 0
  • bild1.jpg
    bild1.jpg
    78,9 KB · Aufrufe: 0
  • bild10.jpg
    bild10.jpg
    542 KB · Aufrufe: 0

Juelin

Bekanntes Mitglied
Beim MySQL Server läuft "run Administration Tool".
Einstellungen bild11
 

Anhänge

  • bild11.jpg
    bild11.jpg
    69,6 KB · Aufrufe: 0

Juelin

Bekanntes Mitglied
Hallo Konrad,
ich hoffe Du hastest schöne Ostern.
Habe den Treiber für MariaDB downgeloaded und im Driver hinzugefügt.
Leider klappt der Connect nicht siehe Bild13
Danke und Gruß
Jürgen
 

Anhänge

  • bild13.jpg
    bild13.jpg
    117,4 KB · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Ich kenne mich mit Netbeans nicht aus und kenne daher nicht alle notwendigen Schritte um auf Datenbanken zuzugreifen.

Aber die Fehlermeldung zeigt, dass der Treiber offensichtlich nicht richtig hinzu gefügt wurde. Welche Schritte hast Du genau gemacht? Sprich:
  • Welche Datei hast Du herunter geladen?
  • Was hast Du dann weiter damit gemacht?
  • Welche Datei hast Du dann am Ende hinzugefügt (Vermutlich aus dem ersten Post Bild 9 mit den Driver Files)?
 

KonradN

Super-Moderator
Mitarbeiter
Wenn man sich die Downloads ansieht, dann wird:
mariadb-java-client-3.3.3.jar
benötigt.

Und diese Datei müsste dann auch entsprechend hinzugefügt werden. (Bild8 und/oder Bild9)
Der angegebene Klassenname ist korrekt - org.mariadb.jdbc.Driver ist der Klassenname und diese Klasse befindet sich in dem genannten JAR File.
 

M.L.

Top Contributor
Netbeans ... Java DB ... MySQL Server ...
Desweiteren Drivern MariaDB
Rundumschlag: hier fehlen weitere Einstellungen / Treiber / verfügbare Software / ... Im Reiter "Services" rechte Maustaste auf z.B. "PostgreSQL" "Connect Using..." führt zu
NB_PostgreSQL.JPG


Für MariaDB dürfte der Umweg über Maven / Gradle / ... einfacher sein, als der Download und das Entpacken der verlinkten Datei (wo auch keine .jar / .zip Datei zu finden ist...)
Ein einfaches Maven-Testprojekt mit NB anlegen ( MariaDB Server als Service installiert und startbereit ):
pom.xml
Code:
 ...
</properties>
    <dependencies>
    <dependency> 
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.3.3</version>
</dependency>
    </dependencies> ...

Driver.java
Java:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
//Demo-Import um maria....jar zu testen, auskommentieren führt zu Warnmeldungen
/*import org.mariadb.jdbc.client.Client;
import org.mariadb.jdbc.client.impl.MultiPrimaryClient;
import org.mariadb.jdbc.client.impl.MultiPrimaryReplicaClient;
/*
/**
 *
 * @author ...
 */
public class Driver {

    
        public static void main(String[] args) {
        // Datenbankverbindungsdaten
        String url = "jdbc:mariadb://localhost:3306/";
        String user = "root";
        String password;
            password = "*********";  // <- richtiges Passwort

        try {
            try ( // Verbindung zur Datenbank herstellen
                    Connection connection = DriverManager.getConnection(url, user, password)) {
                if (connection != null) {
                    System.out.println("Verbindung zur Datenbank hergestellt!");
                    // Hier können weitere Operationen auf der Datenbank durchgeführt werden
                }
                // Verbindung schließen
            }
        } catch (SQLException e) {
            System.out.println("Fehler bei der Datenbankverbindung: " + e.getMessage());
        }
    }
    }

NB_Maria_Success.JPG
 

Juelin

Bekanntes Mitglied
Hallo Konrad,
der Tip mit mariadb-java-client-3.3.3.jar war gold richtig.
Der Driver läuft jetzt. (siehe Bilder server1 bis server5).
Das System hat auch einen "jdbcmariadb" Zugang angelegt und connected.
Hierüber habe ich Zugriff auf meine Datenbanken.
Also unter Drivers ist alles OK.
Aber unter Databases "MySQL Server at localhost" und "Java DB" geht der start nicht. (siehe bild6 und bild12).
Und "Java DB" brauch ich doch, oder?
Danke und Gruß
Jürgen
 

Anhänge

  • server1.jpg
    server1.jpg
    397,4 KB · Aufrufe: 0
  • bild12.jpg
    bild12.jpg
    73,8 KB · Aufrufe: 0
  • bild6.jpg
    bild6.jpg
    422,9 KB · Aufrufe: 0
  • server5.jpg
    server5.jpg
    84,2 KB · Aufrufe: 0
  • server4.jpg
    server4.jpg
    77,1 KB · Aufrufe: 0
  • server3.jpg
    server3.jpg
    98,5 KB · Aufrufe: 0
  • server2.jpg
    server2.jpg
    63 KB · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Also fangen wir einmal an, ein paar Dinge zu sortieren:

a) Datenbankserver - hier musst Du aufpassen, was Du nutzt. Ich habe jetzt nicht mehr recherchiert, aber ich meine, ich habe irgendwas gelesen von wegen XAMP oder so? Ich kenne Netbeans nicht, aber ich meine, dass das paar Bildschirmfotos so aussahen, als ob es da auch irgendwas an Serverkomponente gibt. Hier solltest Du sicher sein, dass Du genau einen Server laufen lässt.

b) Datenbank selbst - hier ist wichtig, dass Du eine Datenbank hast, auf die Du zugreifen kannst / willst. Das war in einem Bild mit dem Schema, das du wählen könntest. Hier solltest Du also schauen und ggf. die Datenbank anlegen.

c) Zugriff auf die Datenbank - Hier gibt es zwei Dinge, die man unterscheiden muss. Das, was ich in den Bildschirmfotos meine zu sehen ist eine Art Datenbank Frontend. Du kannst also aus der Entwicklungsumgebung auf die Datenbank zugreifen und diese anschauen und vermutlich auch verändern. Auf der anderen Seite ist der Zugriff aus Deinem Programm heraus zu sehen. Da haben all die Bildschirmfotos relativ wenig mit zu tun. Das brauchst Du dafür nicht. Da brauchst Du aber die Abhängigkeit (also das jar File muss im Classpath sein) und dann kannst Du mit Code auf eine Datenbank zugreifen wie es z.B. @M.L. dargestellt hat.

d) Fehlende Imports und so - das sollte die Entwicklungsumgebung eigentlich eigenständig hinzufügen können. Wenn Du also auf eine Klasse zugreifst, deren import noch fehlt, dann sollte es eine Möglichkeit geben, dass Netbeans diese hinzufügt. Hier musst Du aber sicher stellen, dass die Klasse im Projekt verfügbar ist. Das bedeutet, die Klasse i Classpath sein muss und - so Du eine module-info.java hast - musst Du auf das Modul ein requires Eintrag haben.
Die Klasse aus dem java.sql Namespace sind in dem Modul java.sql, so dass Du ein requires java.sql; Eintrag in der module-info.java benötigst (oder alternativ: module-info.java komplett löschen).

Das wären so die Punkte, die ich hier so gerade sehe. Aber wie zuvor: Ich arbeite nicht mit netbeans, daher bin ich hier kein Experte. @M.L. und co werden Dir hier evtl. besser helfen können, wenn es um Netbeans spezifische Probleme geht.
 

Juelin

Bekanntes Mitglied
Hallo Konrad,
erst mal Danke für Deine Bemühungen.
Also in Netbeans kann ich über Services -> Databases auf meine Datenbanken zugreifen und lesen (siehe import6)
Und ob ich Java DB brauche weiss ich nicht. Der jdbcmariadb funktioniert ja.
Ich brauche nur noch den import java.sql.
Dazu gehe ich in Netbeans auf Tools -> Servers und erhalte bild import5.
Dann klicke ich den Reiter Java und erhalte bild import1.
Dort klicke ich auf Manage Plattforms und erhalte bild import2. Da ist ja java.sql drin.
Im Reiter Sources stehen jar-Files. Hier könnte eventuell was fehler, keine Ahnung. (siehe import3 und import4).
So jetzt bräuchte ich jemand, der mir sagen kann wie ich java.sql rein bekomme.
Danke und Gruß
Jürgen
 

Anhänge

  • import6.jpg
    import6.jpg
    443,6 KB · Aufrufe: 0
  • import5.jpg
    import5.jpg
    162 KB · Aufrufe: 0
  • import1.jpg
    import1.jpg
    94,5 KB · Aufrufe: 0
  • import2.jpg
    import2.jpg
    149,3 KB · Aufrufe: 0
  • lmport3.jpg
    lmport3.jpg
    282,4 KB · Aufrufe: 0
  • lmport4.jpg
    lmport4.jpg
    126,5 KB · Aufrufe: 0

KonradN

Super-Moderator
Mitarbeiter
Ich möchte Deine Aufmerksamkeit noch einmal auf einen speziellen Punkt lenken:
so Du eine module-info.java hast - musst Du auf das Modul ein requires Eintrag haben.
In einem ZIP, das Du mir mal gegeben hast, war in dem Projekt auch eine module-info.java. Wenn Du in dem Code also auf java.sql zugreifen willst, dann muss das auch entsprechend dort eingetragen sein. Das könnte dann so aussehen:
Java:
module com.juelin.projekt8 {
    requires javafx.controls;
    requires javafx.fxml;
    requires java.sql;

    opens com.juelin.projekt8 to javafx.fxml;
    exports com.juelin.projekt8;
}

(Ich habe einfach einmal die Datei aus dem ZIP genommen und ergänzt.)

Eine mögliche Alternative könnte sein, die module-info.java komplett zu löschen.
 

Juelin

Bekanntes Mitglied
Hallo M.L.
danke für Deine Antwort.
Bei mir ist in "Java Dependencies" das Modul java.sql drin
Aber in "Dependencies" ist der mariadb-java-clint nicht drin.
Keine Ahnung wie man das rein bekommt. (Natürlich mit ADD, aber was muss in die Felder rein?
Und ganz wichtig wäre mir den Import java.sql zu haben.
Danke und Gruß
Jürgen
 

mihe7

Top Contributor
Aber in "Dependencies" ist der mariadb-java-clint nicht drin.
Die Abhängigkeit brauchst Du im Java/Jakarta EE Projekt nicht. Es ist zwar prinzipiell möglich, den SQL-Treiber mit der Anwendung auszuliefern, macht aber im EE-Umfeld meines Erachtens nicht wirklich Sinn.

Du hast drei Komponenten:
  1. Das Datenbank-UI von NetBeans.
  2. Deine Anwendung
  3. Application Server (GlassFish)
Punkt 1 musst Du vollkommen unabhängig vom Rest sehen. Das ist einfach ein Client, den NetBeans zur Verfügung stellt.

Punkt 2: Deine Anwendung benötigt den JDBC-Treiber in der Regel nicht, denn die arbeitet einfach mit den APIs von JDBC.

Punkt 3: Der Application Server kann Deiner Anwendung die notwendigen Datenbankverbindungen zur Verfügung stellen. Kopiere die mariadb-java-client-x.y.z.jar nach ${GLASSFISCH_HOME}/glassfish/domains/domain1/lib. Glassfish neu starten, anschließend kannst Du im Application Server einen Connection Pool und eine JDBC-Ressource konfigurieren, so dass Du per JNDI-Lookup an die "Datenquelle" herankommst.

Den Lookup kann man per Code durchführen oder man verwendet einfach eine Annotation:
Java:
@Resource(lookup = "jdbc/meineDatenbank")
private DataSource source; // DataSource ist aus dem Paket javax.sql

An die Connection kommst Du dann einfach per source.getConnection().
 

M.L.

Top Contributor
mariadb-java-clint nicht drin.... Import java.sql zu haben.
Von manuellen Herunterladen- und Kopieraktionen mit maria-...-... .jar mal abgesehen: rechte Maustaste auf "Dependencies", "Add Dependency" (evtl. bedingt durch Maven und pom.xml mit Autovervollständigung):
NB_Add_Dependency.png

Und alles Nötige im Java-Code importieren:
Java:
...import java.sql. ... ;  ...import org.mariadb. ... ;
 

Juelin

Bekanntes Mitglied
Hallo Konrad,
wie immer hattest Du mit Deinem Vorschlag recht.
Im File module-info.java requires java.sql eintragen.
Und schon läuft es.
Danke und Gruß
Jürgen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin Java und MySQL MariaDB - WHERE-Klausel Datenbankprogrammierung 17
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
TheSkyRider MySQL Datenbankzuordnung in Verbindung mit Java Datenbankprogrammierung 7
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
M MySQL Datenbank in Array Datenbankprogrammierung 2
P MySQL- Neues Passwort Datenbankprogrammierung 1
btwX28 mysql abfrage über phpmyadmin Datenbankprogrammierung 8
sserio SQL oder MySQL Datenbankprogrammierung 44
OnDemand Mysql Query Builder Datenbankprogrammierung 1
Z MySQL "Too many connections" auch nach schliessen der Connections. Datenbankprogrammierung 10
yakazuqi MySQL MySQL Connection reset Datenbankprogrammierung 7
OnDemand MySql Foreign Key nötig oder unnötig Datenbankprogrammierung 3
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
OnDemand MySQL und mongoDB wann macht was Sinn? Datenbankprogrammierung 11
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
D MYSQL goorm IDE - Wie speichern? Datenbankprogrammierung 0
OnDemand Mysql UPDATE if condition Datenbankprogrammierung 14
D MySQL Geburtsdatum per KW abfragen Datenbankprogrammierung 1
C Java MySQL check if value exists in database Datenbankprogrammierung 2
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
J MySQL - Primary Key Date,Time vs ID Datenbankprogrammierung 16
ruutaiokwu MySQL: Messwerte, welche stagnieren interpolieren? Datenbankprogrammierung 2
S Datenbank MySQL und Java Datenbankprogrammierung 8
Thallius MySQL JDBC auf Linux Server zu mySQL DB auf anderem Linux Server wirft Access denied Datenbankprogrammierung 5
P Adressadministration mit Java und mySQL Datenbankprogrammierung 14
D MySQL Abfrage Datenbankprogrammierung 5
D MySQL Abfrage sortieren Datenbankprogrammierung 4
platofan23 MySQL Java Programm findet Treiber für mySQL auf Debian-Server nicht? Datenbankprogrammierung 11
J MySQL MySQL Risiken bei Stromausfall minimieren Datenbankprogrammierung 9
D MySQL Abfrage SUM datediff Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
G MySQL Problem mit MySQL verbindung Datenbankprogrammierung 8
X MySQL Java hat keinen Zugriff auf MySQL Datenbankprogrammierung 9
Z [JDBC][MYSQL] Access denied Datenbankprogrammierung 7
D MySQL Connection richtig herstellen. Wie ? Datenbankprogrammierung 7
D Multiple Connection mit MySQL Datenbankprogrammierung 4
D MySQL Eibinden des "mysql-connector" in eine fertige Jar Datenbankprogrammierung 3
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
D MySQL Zeilen kumulieren Datenbankprogrammierung 8
D MySQL Abfrage mit kumulierten Werten Datenbankprogrammierung 16
K Servlet-MySQL DB Datenbankprogrammierung 2
X MySQL Json String in MySQL einfügen. Datenbankprogrammierung 20
OnDemand Update auf Mysql läuft nicht durch Datenbankprogrammierung 30
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
D Datumsformat aus MySQL ändern Datenbankprogrammierung 15
G MySQL Java Problem: Nullpointer Exception obwohl Daten vorhanden sind? Datenbankprogrammierung 2
K MySQL LAN-MySQL Server mit XAMPP Datenbankprogrammierung 2
R ERModel der Datebanken (ORACLE,MySQL,MS-SQL usw) Datenbankprogrammierung 4
X MySQL In MySQL Funktionen erstellen, wenn Zelle leer dann andere Zelle ändern? Datenbankprogrammierung 9
K Anfängerfrage CSV in MySQL Datenbankprogrammierung 41
I MySQL Wert nachträglich bearbeiten Datenbankprogrammierung 1
N MySQL Datenbank lokal Datenbankprogrammierung 3
B MySQL: Port ändern über GUI? Wo und wie Port ändern? Datenbankprogrammierung 0
B MySQL installieren - silent / User anlegen Datenbankprogrammierung 3
X MySQL Verbindungdsaufbau MySql auf Ubuntu-Server Datenbankprogrammierung 10
F MySQL Wie kann ich in Java Datensätze aus einer MySQL Datenbank gezielt in einzelne Arrays schreiben? Datenbankprogrammierung 9
P MySQL JPA / MySQL - Fehler bei type=innoDB Datenbankprogrammierung 8
M MySQL MySQL DATETIME-Import Datenbankprogrammierung 9
P MySQL Connection Global Datenbankprogrammierung 13
J mySQL- Java Application - Zugriff über Internet Datenbankprogrammierung 3
P MySQL-Verbindung in anderer Klasse nutzen Datenbankprogrammierung 2
D JavaFX Anwendung zugriff auf MySQL DB. Datenbankprogrammierung 2
D MySQL Grundsätzliche Fragen zu MySQL Datenbankprogrammierung 3
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
M MySQL-Syntax-Fehler Datenbankprogrammierung 1
M In MySql Datenbank schreiben Datenbankprogrammierung 6
D mySQL Timestamp in RegularTimePeriod bzw Second Datenbankprogrammierung 3
H SHOW Tables in Java/MySQL Datenbankprogrammierung 8
windl MySQL und HSQLDB Datenbankprogrammierung 4
S Anbindung zur mysql von mit Swing und AWT Datenbankprogrammierung 22
F MySQL+ Netbeans: Datenbanken mit Automatisch generierten Entity Classes get und set Datenbankprogrammierung 2
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
C MYSQL kann wert nicht eintragen Datenbankprogrammierung 3
D Aktualisierung einer ListView mit Daten aus MySQL-DB Datenbankprogrammierung 5
F BPlaced MySql Datenbank ansprechen Datenbankprogrammierung 5
S MySQL MySQL will einfach nicht, bitte um Rat Datenbankprogrammierung 4
M MySQL Datenbank durchsuchen Datenbankprogrammierung 5
Z MySQL mysql Facharbeit: Tipps und Ideen gesucht Datenbankprogrammierung 5
dat_vin JavaFX Datenbankverbindung über JPA und MySQL Error Datenbankprogrammierung 0
K MySQL Datenbank 2facher Zugriff Datenbankprogrammierung 1
Z MySQL Shopsystem mit mysql und Java Datenbankprogrammierung 8
S [MySQL] Topliste Datenbankprogrammierung 2
H Datenbank-Anbindung Java/MySQL Datenbankprogrammierung 2
T MySQL MySQL - Insert into fügt zwei identische Datensätze ein Datenbankprogrammierung 2
A Eine MySQL Zeile mit JDBC löschen Datenbankprogrammierung 5
J Dateien in MySQL speichern & indizieren Datenbankprogrammierung 2
B MySQL MySQL-Abfrage von aufsummierter Zeit Datenbankprogrammierung 3
K MySQL Datenbankbackups Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
kaoZ HyperSQL vs. MYSQL Datenbankprogrammierung 4
L JSONArray/JSONObject MySQL-Servlet Abfrage Datenbankprogrammierung 2
V Internationalization mit MySql Datenbankprogrammierung 1
K Adressverwaltung mit MySql und Java? Datenbankprogrammierung 11
M Java Mysql verbinden Datenbankprogrammierung 3
L Zugriff auf lokal gespeicherte mySQL Datenbank Datenbankprogrammierung 3
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1

Ähnliche Java Themen

Neue Themen


Oben