CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: bluemask con ben 4 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: bluemask con ben 9 Thanks ricevuti negli ultimi sette giorni
Utente del mese: gianpassa con ben 33 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

Connessione diretta a mysql tramite connector jdbc

Se questa discussione ti č stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Aug 2012
    Localitā
    Torino
    Messaggi
    3
    Smartphone
    Galaxy S3 + Galaxy S2

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Connessione diretta a mysql tramite connector jdbc

    Ciao a tutti mi trovo con questo problema:


    codice:
    09-08 21:00:36.110: I/System.out(11391): test
    09-08 21:00:36.195: I/System.out(11391): com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    09-08 21:00:36.195: I/System.out(11391): The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    Dal telefono ho provato con applicazioni di connessione a mysql č funziona tutto bene, (questo per verificare che non ci fossero problemi di accettazione di connessioni remote da parte del server db), inoltre ho preso lo stesso codice (che č un codice copiato da internet ) č ho creato un'applicazione java da far girare in locale e.... funziona!!!

    Sia sul db locale (windows) che sul mio server (linux Ubuntu).

    Cercando l'errore su google, ho trovato solo riferimenti ai file di configurazione sull'accesso remoto del db, ma non č il mio caso.

    vi posto il codice:

    codice:
     try {
                Class.forName("com.mysql.jdbc.Driver");
                Connection conn =
                    DriverManager.getConnection(
                        "jdbc:mysql://10.0.0.88:3306/test?" + "user=root&password=mysqlpwd"
                    );
                Statement stmt;
                PreparedStatement pstmt;
                ResultSet rs;
                // creo la tabella
                stmt = conn.createStatement();
                stmt.executeUpdate("DROP TABLE IF EXISTS students");
                stmt.executeUpdate("CREATE TABLE students " +
                        "(id INTEGER primary key auto_increment, " +
                        "firstname TEXT NOT NULL, " +
                        "lastname TEXT NOT NULL)");
     
                // inserisco due record
                pstmt = conn.prepareStatement("INSERT INTO students " +
                        "(firstname, lastname) values (?,?)");
                pstmt.setString(1, "pippo");
                pstmt.setString(2, "Rossi");
                pstmt.execute();
                pstmt.setString(1, "Marco");
                pstmt.setString(2, "Bianchi");
                pstmt.execute();
                // recupero i dati
                rs = stmt.executeQuery("SELECT * from students");
                while(rs.next())
                {
                    System.out.println("id: " + rs.getString("id"));
                    System.out.println("firstname: " + rs.getString("firstname"));
                    System.out.println("lastname: " + rs.getString("lastname"));
                    System.out.println("--------------------------------------");
                }
                pstmt.close(); // rilascio le risorse
                stmt.close(); // rilascio le risorse
                conn.close(); // termino la connessione
            }
            catch(ClassNotFoundException e)
            {
                System.out.println(e);
            }
            catch(SQLException e)
            {
                System.out.println(e);
            }

    potrei dover aggiungere dei permessi particolari al manifest.xml?

    ecco i permessi attualmente settati:

    codice:
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    Per il momento vi ringrazio

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Sep 2012
    Messaggi
    41

    Ringraziamenti
    3
    Ringraziato 3 volte in 3 Posts
    Predefinito

    perchč non usi un cursore? Poi fai cursore.rawQuery("querysql"). Per quanto riguarda la connessione al db, ti faccio vedere le mie impostazioni.

    codice:
    private SQLiteDatabase openDataBase(int flag) {
    
    		SQLiteDatabase checkDB = null;
    
    		try {
    			String myPath = DATABASE_PATH + DATABASE_NAME;
    			Environment.getExternalStorageDirectory();
    			Environment.getDataDirectory();
    			Environment.getRootDirectory();
    			Environment.getExternalStorageState();
    			checkDB = getWritableDatabase();
    
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    
    		return checkDB;
    	}
    Poi ovviamente dopo ogni operazione chiudi cursore e connessione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy