Suggerimenti Database

di il
23 risposte

Suggerimenti Database

Salve a tutti, sto cercando suggerimenti su quale database usare che sia compatibile con java e poi anche con un applicazione android, perche nel campo database poco me ne intendo e non so ben se usando certi database ci sia qualche problema poi con android o java, perche poi volevo mettere questo database sul raspberry quindi proprio non saprei!!! Quaksiasi suggerimento e gradito

23 Risposte

  • Re: Suggerimenti Database

    Androd sta a Java (framewok!) come la patata sta alla carota!

    Sono entrambe tuberi, ma non c'azzeccano nulla l'una con l'altra!

    Anche se Android si progamma usando il linguaggio di programmazione Java

    Android e compatibile solo con una piccolissima parte del framework Java. Ma proprio piccola!!!! Talmente piccola che puoi tranquillamente pensare che i due sistemi siano totalmente incompaibili!

    Quindi, la domanda sorge spontanea:

    1) vuoi in DBMS che possa essere installato sia sotto Andorid che sotto Java? Puoi fare qualcosa con SQLLite (un DBMS embedded).
    2) vuoi un DBMS accessibile da Android e da Java via TCP/IP? Non mi risulta che sistano driver JDBC per Android per i database che conosco (MySQL, PostgreSQL, SQLServer, Oracle, DB2, HSQL e parecchi altri).

    Ci sarebbe questo accrocchio:



    Quindi: condoglianze
  • Re: Suggerimenti Database

    Ti spiego meglio! Ho bisogno di accedere ad un database sia dal pc che dal cellulare. Il problema è che come linguaggio son più pratico con java quindi andrei meglio a scrivere un programma in java!
    Al database deve accedervi dal pc per inserire dei dati e poi dal cellulare per scaricarli
  • Re: Suggerimenti Database

    triko ha scritto:


    Ti spiego meglio! Ho bisogno di accedere ad un database sia dal pc che dal cellulare.
    Che DBMS e'?

    Supponendo qualcosa stile MySQL/PostreSQL,/SQLServer/Oracle/ecc, non si puo' fare direttamente.

    il PC ed il DBMS sono connessi attraverso una intranet ad alta velocita' e a bassissimo errore.

    Il cellulare si collega via 3G/4G, ed eventualmente via WiFi, e queste sono connessioni mooolto lente, ad alta probabilita' di errore e di disconnessione, non adatte per una connessione verso un DBMS.

    La soluzione che si addotta nel caso del cellulare e' quella di realizzare su un PC un WebService, cioe' fondamentalmente una pagina HTML che puo' essere interrogata da remoto via HTTP, e che ritorna il risultato via XML.

    A sua volta, il WebService accede al DBMS.

    Guardati il link che ti ho inviato prima.
  • Re: Suggerimenti Database

    Ho guardato il link, è una specie di tramite tra pc/cell e database!

    Ok ora è già più chiara la cosa. Ti faccio un esempio di quello che dovrei fare:
    Inviare una Stringa da cell a PC o da PC a cell. Il database pensavo di usarlo per sapere a chi apparteneva quella stringa, assegnandoli uno specifico PID in modo che quando il programma su PC vede aggiornamenti guarda se il PID è il suo ed in quel caso preleva la stringa e la mostra ad utente
    Non so nemmeno se mi convenga usare il Database.
    Insomma una specie di scambio messaggi tra Telefono e Pc, e non tra 2 Smartphone.
    Visto che è una cosa piccola ho il raspberry che nel caso può fare da Server/Database per contenere i "Messaggi" o dati scambiati
  • Re: Suggerimenti Database

    La soluzione per cose di questo genere e' quello di avere un Web Server su PC, anche minimale, non serve per forza Apache, e su cel implementare un polling (check del web server ad intervalli regolari).

    Comunicazione via HTTP e dati in formato testo <chiave:valore>, JSON o XML.

    Partendo da questo, puoi implementare tutto il resto.

    Di Web Server minimali in Java ne trovi quanti ne vuoi, il piu' piccolo che ho realizzato e' di qualche decina di righe.
  • Re: Suggerimenti Database

    Hai realizato un web server minimale di qualche decina di righe? :O

    La comunicazione in HTTP non saprei farla . Json non lo so ed XML, so qualcosina.
    Hai qualche consiglio, e se non ti chiedo troppo, puoi farmi vedere le righe di codice del tuo piccolo web server che almeno mi faccio un idea di come funziona?
    Perchè proprio so pochissimo a parte due tre cose di teoria!
    Pratica non saprei da dove iniziare!
  • Re: Suggerimenti Database

    triko ha scritto:


    Hai realizato un web server minimale di qualche decina di righe? :O
    Farlo in poche righe sì .... se "sotto" hai un framework apposito che implementa il protocollo HTTP "server side".

    triko ha scritto:


    La comunicazione in HTTP non saprei farla .
    Beh, nessuno si mette (se non per scopi "didattici" o di studio e comunque in maniera molto limitata) a scrivere del codice per implementare da zero il protocollo HTTP.

    triko ha scritto:


    Json non lo so ed XML, so qualcosina.
    Perchè proprio so pochissimo a parte due tre cose di teoria!
    Pratica non saprei da dove iniziare!
    Il problema è che se vuoi operare su protocolli di comunicazione (in questa discussione parliamo di HTTP ma si potrebbe parlare anche più in generale), lato client e/o server e magari andare anche più in la verso web application Java EE .... di cose ne dovresti sapere ... e veramente molte!
    E ci vorrebbero basi molto solide sul linguaggio Java, fino al multi-threading e oltre.
    Non lo dico certo per spaventarti o metterti in difficoltà ....
  • Re: Suggerimenti Database

    Un sogno infranto ho capito!!!
    I thread purtroppo non so ancora come gestirli, se non in teoria

    Pensare che avevo un idea geniale per un applicazione e che son limitato da me stesso
    Boh, qualcosa mi inventerò!
    Comunque se puoi farmi vedere il tuo mini web server ho piacere
    Grazie per tutto il resto
  • Re: Suggerimenti Database

    triko ha scritto:


    Comunque se puoi farmi vedere il tuo mini web server ho piacere
    A partire da Java 6 nel framework standard c'è un server HTTP minimale, incorporabile in una normale applicazione standalone. Non è ovviamente un web server altamente scalabile, performante e chissà che cosa ma ... funziona.
    Ecco un esempio scritto al volo:
    import com.sun.net.httpserver.HttpExchange;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpServer;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.InetSocketAddress;
    import java.util.Scanner;
    
    public class JDKWebServer {
        public static void main(String[] args) {
            try {
                HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
                server.createContext("/hello.html", new HelloHandler());
                server.setExecutor(null);
                System.out.println("Avvio ...");
                server.start();
                System.out.println("Avviato");
    
                System.out.println("Premi invio per terminare");
                Scanner scanner = new Scanner(System.in);
                scanner.nextLine();
    
                System.out.println("Terminazione ...");
                server.stop(2);
                System.out.println("Terminato");
            } catch (Exception e) {
                System.err.println(e);
            }
        }
    
        private static class HelloHandler implements HttpHandler {
            public void handle(HttpExchange httpExchange) throws IOException {
                String htmlString = "<html><body><h1>Hello from HelloHandler</h1></body></html>";
                byte[] response = htmlString.getBytes("UTF-8");
    
                httpExchange.sendResponseHeaders(200, response.length);
                OutputStream os = httpExchange.getResponseBody();
                os.write(response);
                os.close();
            }
        }
    }
    Comunque compila, anche da prompt dei comandi:

    javac JDKWebServer.java
    poi avvio:
    java JDKWebServer

    Apri il browser internet (qualunque hai) e vai al url:

    http://localhost:8080/hello.htm

    Sono ovviamente un pochino di righe .... e per una stupidaggine di "hello". Quindi immagina tu.
  • Re: Suggerimenti Database

    Si, si la parte per compilazione e come veder il server la sapevo
    Comunque bello!
    Quindi potrei partire da lì per vedere se riesco a far qualcosa!
    A parte l'unico problema che non abbia di come mettere il server in rete
    In effetti è + complicato di quanto pensavo io quello che voglio fare!!!
  • Re: Suggerimenti Database

    triko ha scritto:


    A parte l'unico problema che non abbia di come mettere il server in rete
    Dipende cosa intendi per "rete": una LAN? Una WAN?

    Ma alla fin fine è solo questione di amministrazione della rete (per quanto è sotto il tuo controllo, ovvio), non centra più la programmazione. Tanto per dirne una: se hai una rete locale con più PC è molto probabile che il serverino HTTP che ti ho mostrato non sia accessibile da altri PC sulla rete ma .... semplicemente perché è altamente probabile che sulla tua macchina ci sia un firewall che blocca quella porta (8080) e tante altre dall'esterno.
  • Re: Suggerimenti Database

    Si scusa, intendo metterlo in una WAN in modo da poterci accedere ovunque sia...
    Cioè non proprio accedervi, diciamo essere in grado di inviargli dati attraverso la rete cellulare e da postazione PC a casa da un amico, a scuola, a lavoro!!!
    semplicemente perché è altamente probabile che sulla tua macchina ci sia un firewall che blocca quella porta (8080) e tante altre dall'esterno.
    Si si, ma non ne ho necessità, ti direi anche la mia idea, ma ho paura che poi la rubi e ci lucri
    E non avendo Copyright sulle idee .
    E' una cosa banale ma che spesso a me serve!
  • Re: Suggerimenti Database

    Se il pc di casa non ha un IP fisso la cosa si complica
  • Re: Suggerimenti Database

    Quello non è un problema, ho già settato un programma per la dinamicità dell'IP
    L'ho testato usando una SSH da cell, e anche riavviando modem non cambiava!
    Sempre se ti riferisci a questo, perchè hai scritto IP del PC, quello non cambia mai è sempre il solito!
    O ti riferivi all'IP dinamico che da Telecom?
Devi accedere o registrarti per scrivere nel forum
23 risposte