Agisci come server MySQL in Java / Android [chiuso]

0

È possibile agire come server MySQL in un'applicazione Java o Android, in modo che applicazioni come HeidiSQL possano connettersi ad esso?

Quello che voglio fare è scrivere un'applicazione per Android che si comporta come un server MySQL per un database arbitrario su quel dispositivo. Dato che ci sono molti client MySQL che possono connettersi ai server MySQL, sarebbe l'ideale se potessi imitare un server del genere.

Allo stato attuale, ho tre opzioni:

  • Usa una sorta di libreria server MySQL (se esiste);
  • Scrivi personalmente il server, compreso l'implementazione del (banale / necessario parti del) protocollo (è fattibile?);
  • Rilascia l'approccio del server MySQL e scrivi personalmente un client / server specifico.

Alla fine, il server (applicazione Android) dovrebbe essere in grado di elaborare e rispondere a semplici query inviate da un client.

Quali opzioni sono fattibili e le più adatte?

    
posta nhaarman 24.09.2014 - 17:02
fonte

1 risposta

3

Siediti e scrivi tu stesso il client / server.

Se non sei disposto ad implementare tutti del protocollo, solo farne parte può lasciarvi delle rotture significative e strane quando qualche applicazione prova a:

  • prepara una dichiarazione
  • itera su un set di risultati
  • fai una transazione (e un rollback!)
    • fai qualcosa 'allo stesso tempo' come un'altra cosa (puoi fare un update foo set bar = bar + 1 senza entrare in un ciclo infinito?)
  • fa dichiarazioni annidate (esempio:

    SELECT  PLAYERS.PLAYERNO, NAME,
       (SELECT   COUNT(*)
        FROM     PENALTIES
        WHERE    PLAYERS.PLAYERNO =
                 PENALTIES.PLAYERNO) AS NUMBER_OF_PENALTIES,
       (SELECT   COUNT(*)
        FROM     TEAMS
        WHERE    PLAYERS.PLAYERNO =
                 TEAMS.PLAYERNO) AS NUMBER_OF_TEAMS
    FROM    PLAYERS
    

Questo non è solo per cercare di presentare "Sono un server MySQL al mondo" ma solo "Sono un server SQL per il mondo" ...

Ci sono cose più semplici di un server MySQL. Si può andare solo per "I'm a database" e utilizzare ODBC per connettersi ad esso piuttosto che provare a replicare MySQL. O qualcosa come GNOME-DB .

Tutto ciò, tuttavia, presuppone che i dati che hai dietro questa interfaccia siano effettivamente relazionali e possano essere interrogati in modo relazionale. Se non è potresti trovarti con la mancata corrispondenza relazionale dell'oggetto impedenza al contrario (e poi di nuovo?).

Quindi, tornando al mio suggerimento originale. Scrivi il client e il server in base ai dati che hai modellato dietro di esso. Cercare di scrivere qualcosa che corrisponda all'aspetto di un database implicherà quasi la scrittura di un database ... e non è un compito da poco.

    
risposta data 24.09.2014 - 17:28
fonte

Leggi altre domande sui tag