MM.MySQL: In wieweit noch funktionsfähig?

Status
Nicht offen für weitere Antworten.
T

tuxedo

Gast
Servus,

wie ja sicherlich einige schon wissen ist seitgeraumer Zeit der MySQL-JDBC-Treiber in aktuelleren Version nicht mehr mit LGPL sondern mit GPL lizensiert was bedeutet, sobald man diesen benutzt, man sein eigenes Programm auch unter die GPL stellen MUSS.

Nun, es gibt ja noch die "alte" Version namens "MM.MySQL". Diese ist noch unter LGPL lizensiert.

Was ich nun wissen wollte: Hat mal jemand getestet oder irgendwo niedergeschrieben in wieweit diese "alte" Version noch mit MySQL4 (oder sogar 5) kompatibel ist? Kann man sich überhaupt noch mit der DB verbinden und "einfache" Anfragen stellen? Bin selbst noch nicht dazu gekommen das mal zu checken.

Ach ja: Die alte Version mit LGPL gibts hier: http://mmmysql.sourceforge.net/old-index.html

Ich persönlich finde es extrem schade dass der MySQL-JDBC nur noch unter GPL und kostenpflichtig (im übrigen nicht ganz billig) unter anderen Lizenzen erhältlich ist.

Gruß
Alex
 
T

tuxedo

Gast
Ich wusste das das kommt. ABER: Eine Frage kann man nicht mit einer Gegenfrage beantworten. Dass Postgres eine geschicktere Lizenz als MySQL hat weiß ich. Dennoch ist meine Frage noch offen.
 

bronks

Top Contributor
alex0801 hat gesagt.:
... Was ich nun wissen wollte: Hat mal jemand getestet oder irgendwo niedergeschrieben in wieweit diese "alte" Version noch mit MySQL4 (oder sogar 5) kompatibel ist? Kann man sich überhaupt noch mit der DB verbinden und "einfache" Anfragen stellen? Bin selbst noch nicht dazu gekommen das mal zu checken.
Das kannst Du leider knicken. Vor Jahren habe ich für MySql4 unwissentlich die mm-Treiber verwendet weil diese in einem Tutorial verlinkt waren. Damit bekommst Du nichteinmal eine Verbindung. Genauso verhält es sich mit den alten PHP-Treibern, bei denen die Umstellung extremst gruselig ist.

alex0801 hat gesagt.:
... Ich persönlich finde es extrem schade dass der MySQL-JDBC nur noch unter GPL und kostenpflichtig (im übrigen nicht ganz billig) unter anderen Lizenzen erhältlich ist.
Könntest Du den Preis bitte posten oder wenigstens mir per PN mitteilen? Danke!
 
T

tuxedo

Gast
Naja, so wie ich das "rausgefunden" haben braucht man das "ganz große" Paket... War glaub ich ne vierstellige Zahl.
Für mittlere bis kleine Projekte ist das wohl nix. Mir war's dann, für das Projekt das ich damals gemacht hab, zu viel Akt das genau nachzufragen was so ne Lizenz kostet und hab dann Postgres benutzt.

Das ist zwar besser, aber MySQL ist doch etwas einfacher und verbreiteter (z.b. in der Installation) wie ich finde (ist vielleicht auch Gewöhnungssache).

In der Readme zum MM-Treiber hab ich gelesen dass das MySQL-Protokoll 9 und 10 unterstützt wird. MySQL4 hat, soweit ich das in Erfahrung bringen könnte noch das 10er Protokoll ?!

Was mich etwas wundert ist, dass die Community noch nicht auf die Idee gekommen ist selbst nen Treiber zu basteln... Sonst gibts doch auch zu alles und jedem was bei Sourceforge.net ?!

- Alex
 
T

tuxedo

Gast
Hab das Ding mal runtergeladen, in Eclipse rein gezogen und erstmal anderthalbtausend weitere Methoden-Signaturen implementieren lassen damit ichs compilieren konnte.

Mal sehen, vielleicht krieg ich's gebacken dass das Ding wieder rennt... Mal sehen wieviel Zeit ich da reininvestiere :)

Aber wenns klappt, dann mach ich das natürlich publik :) LGPL natürlich (ist ja quasi fast Vorgabe)

- Alex
 
T

tuxedo

Gast
Hey, das geht ja doch... :)

Problem war nicht die Verbindung selbst...
Problem war:

Das Ding liest diverse Servervariablen aus. Darunter auch "sql_mode". Aber das war bei mir nicht gesetzt, bzw "", also leer.

Musste Connection.java im Package org.gjt.mm.mysql wie folgt abändern:

Ab etwa Zeile 508:
vorher:
Code:
			if (_serverVariables.containsKey("sql_mode") ) {
				int sqlMode = Integer.parseInt((String) _serverVariables.get("sql_mode"));

				if ((sqlMode & 4) > 0) {
					_useAnsiQuotes = true;
				} else {
					_useAnsiQuotes = false;
				}
				
			}
nachher:
Code:
// FIXED: Wenn der SQL_MODE leer ist -> keine Ansi-Quotes
			if (_serverVariables.containsKey("sql_mode") && ((String) _serverVariables.get("sql_mode")).length() > 0) {
				int sqlMode = Integer.parseInt((String) _serverVariables.get("sql_mode"));

				if ((sqlMode & 4) > 0) {
					_useAnsiQuotes = true;
				} else {
					_useAnsiQuotes = false;
				}
				
			} else {
				_useAnsiQuotes = false;
			}

Hab einfach noch die Abfrage ob die Variable leer ist eingebaut und einen entsprechenden Else-Fall geformt.
Weitere Hintergrundinfos dazu: http://www.samspublishing.com/articles/article.asp?p=377068&seqNum=2&rl=1

Meine "Select * From ..." Abfrage konnte ich dann ohne Probleme durchführen...

Code:
package de.root1.mmmysql.text;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;



public class testclass {
	
	public static void main(String[] args) {
		Connection connection = null;
		try {
		    // Load the JDBC driver
		    String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver
		    Class.forName(driverName);

		    // Create a connection to the database
		    String serverName = "localhost";
		    String mydatabase = "<db-name>";
		    String url = "jdbc:mysql://" + serverName +  "/" + mydatabase; // a JDBC url
		    String username = "<username>";
		    String password = "<pwd>";
		    connection =  DriverManager.getConnection(url, username, password);
		    
		    String query = "SELECT * FROM `account`"; 
		    
		    Statement stmt = connection.createStatement();
		    ResultSet rs = stmt.executeQuery( query );
	        
		    while ( rs.next() ) 
		    	  System.out.println(rs.getString("email"));
	        
		    
		} catch (ClassNotFoundException e) {
		   e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		} 
	}

}

Ich denke es ist durchaus ein Versuch Wert den Treiber etwas aufzumöbeln und ihn dann als LGPL-Variante publik zu machen.

Okay, er ist vielleicht nicht so performant wie die neuen Treiber. Aber dafür kostet er dann auch nix und kleine Nicht-GPL-Projekte können MySQL benutzen ohne sich gleich massiv in unkosten zu stürzen...

Wer den aktuellen Projektbaum für Eclipse haben will: Einfach melden...
 
T

tuxedo

Gast
Bin ich hier der einzige der es Klasse findet dass es jetzt doch nen LGPL MySQL-Treiber gibt den man mit MySQL4 und Co. benutzen kann?
 
T

tuxedo

Gast
Naja, scheint nicht wirklich jemanden zu interessieren. Egal. Ich markier das Problem mal als "gelöst".
 
Status
Nicht offen für weitere Antworten.
Ä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
Juelin MySQL Datenbankmit glassfish und Netbeans Datenbankprogrammierung 18
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
G 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

Ähnliche Java Themen

Neue Themen


Oben