# MariaDB-Verbindung in JAVA



## I.E. (4. Okt 2017)

Hallo, 

ich habe mir bereits einige Tutorials zum Thema MySQL-Verbindung in JAVA angeschaut. Ich habe bereits einen JDBC-Driver am Start, die Datenbank (MariaDB) selbst läuft auch. Nur muss ich sie irgendwie aus JAVA aus ansteuern können. MariaDB ist ja ein Fork von MySQL, es gibt gibt viele Ähnlichkeiten, aber auch so einige Diskrepanzen. 

Bei MySQL wäre die Formulierung so hier: 

Danach kommen noch die Strings mit dem User-Namen und dem Passwort. Jedenfalls funktioniert es bei mir so nicht. 

Muss sowas bei MariaDB anders formuliert werden? Oder - gibt es vielleicht andere Faktoren, die für eine Verbindung notwendig sind? Ich habe den entsprechende MariaDB-Connector-JAR-File in die Bibliothek des aktuellen Projekts integriert, die Datenbank läuft auch. Was muss gemacht werden, um diese anzusteuern? 


Danke im Voraus für alle wertvolle Hinweise!


----------



## Flown (4. Okt 2017)

https://mariadb.com/kb/en/library/about-mariadb-connector-j/ steht doch alles drinnen?


----------



## I.E. (4. Okt 2017)

Ich kenne diese Seite, ich habe sie auch bereits runtergeladen. Ich kann aber viele Informationen nicht wirklich einordnen. Dazu scheinen manche Hinweise nicht mehr aktuell zu sein. 

 Hier ist ein Link zum "bevorzugten Verfahren", der allerdings in die Leere führt.


----------



## Flown (4. Okt 2017)

Du siehst doch wie du den Connection String angeben musst (der Rest ist ja Javaspezifisch):

```
Connection connection = DriverManager.getConnection("jdbc:mariadb://localhost:3306/DB?user=root&password=myPassword");
```


----------



## thet1983 (4. Okt 2017)

Also ich verwenden die MariaDB mit dem MySql Connector

```
mysql-connector-java-5.1.39-bin.jar
```
Mein ConnectionString hat sich NIE geändert!

```
Class.forName("com.mysql.jdbc.Driver");
String connectionString = "jdbc:mysql://<IP>:3306";
connection = DriverManager.getConnection(connectionString, "<USER>", "<PASSWORD>");
```


----------



## I.E. (4. Okt 2017)

Danke Leute, ich probiere es aus.


----------



## I.E. (5. Okt 2017)

Class.forName("com.mariadb.jdbc.Driver"); 

Bereits diese Zeile liefert eine Exception, ClassNotFound. Wenn ich diese Zeile entferne, kommt die Exception durch die DriverManager-Zeile. 

String connectionString = "jdbc:mysql://<IP>:3306";

Und was diesen connectionString betrifft - andere Quellen geben ja vor, statt IP localhost reinzuschreiben. Was die IP-Nummer betrifft - soll ich jetzt die Nummer reinschreiben, die ich über Start => ausführen => cmd => ipconfig bekomme?


----------



## thet1983 (6. Okt 2017)

I.E. hat gesagt.:


> Bereits diese Zeile liefert eine Exception, ClassNotFound. Wenn ich diese Zeile entferne, kommt die Exception durch die DriverManager-Zeile.


Du must die Jar einbinden!



I.E. hat gesagt.:


> statt IP localhost reinzuschreiben.


wenn der MariaDB Server Lokal ist dann schon...was ist aber wenn dieser auf einem Server rennt?


----------



## I.E. (6. Okt 2017)

Es hat geklappt. Allerdings musste ich tatsächlich den MySQL-Connector nehmen. 

Die Jar war bereits eingebunden, auch davor schon, als ich den MariaDB-Connector verwendet habe. 

Diese Class.for-Anweisung ist jetzt mit dem neuen Connector nicht notwendig. 

Das mit dem IP. Also jetzt habe ich localhost reingeschrieben, es hat auch geklappt. Ansonsten - ich kenne mich noch nicht sonderlich gut aus mit den ganzen Server-Strukturen aus. In diesem aktuellen Fall habe ich aber keine Internet-Verbindung und der MariaDB Server ist lokal. 

Wäre trotzdem mal gut zu wissen, wie ich die Verbindung mit dem MariaDB-Connector herstellen kann.


----------



## thet1983 (6. Okt 2017)

Hier kann man nachlesen unter "USING THE DRIVER"


----------



## I.E. (6. Okt 2017)

Die Seite wurde bereits weiter oben verlinkt, ich kenne sie auch. Aber - mir ist nicht jeder Punkt klar. 

Der erste Link, der zu einer Oracle-Unterseite führt, funktioniert nicht. 

Using external pool - trifft für mich nicht zu, oder? Außerdem - wo bekomme ich die Klasse 
HikariDataSource her? Für den Fall, dass ich doch irgendwann einen external pool verwenden werde. 

 

Das mit replication/failover etc.. - ich kann es nicht wirklich einordnen.


----------



## JuKu (10. Okt 2017)

MariaDB ist ein Fork von MySQL, d.h. du kannst ebenfalls den MySQL Driver verwenden:
https://de.wikipedia.org/wiki/MariaDB
https://de.wikipedia.org/wiki/MariaDB
Replication / Failover brauchst du nicht.

@thet1983 hat bereits alles wichtige gesagt, mehr Informationen brauchst du dazu eig. nicht.


----------

