Autore Topic: Problema connessione Mysql con java jdbc  (Letto 1160 volte)

Offline shanedouglas

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Problema connessione Mysql con java jdbc
« il: 05 Agosto 2014, 22:22:53 CEST »
0
Ciao ragazzi, allora sto cercando di capire perchè succede una cosa.

Il problema è questo:

Dopo aver importato correttamente la libreria mysql-connector-java-5.1.31-bin.jar in eclipse non riesco a connettermi al mio database mysql hostato su bd4free.net

Mi restituisce un errore ("Could not create connection to database server")

Adesso posto il codice usato per la connessione premetto che ho importato cosi import.java.sql.*;

Codice (Java): [Seleziona]
 public void testDB() {//Metodo per connessione
        Connection conn = null;
            String url = "jdbc:mysql://www.db4free.net:3306/";
            String dbName = "NOMEDATABASE";
            String driver = "com.mysql.jdbc.Driver";
            String userName = "USERNAME";
            String password = "PASSWORD";
            TextView text1 =(TextView)findViewById(R.id.textView1);
            try {
                Class.forName(driver).newInstance();
                conn = DriverManager.getConnection(url+dbName,userName,password);
                text1.setText("Connesso a Database");
                conn.close();
                text1.setText("Disconnesso da Database");
            } catch (Exception e) {
                e.printStackTrace();
                text1.setText(e.getMessage());
            }
    }                                        

per richiamare questo void utilizzo un click del bottone e sulla text view mi si presenta l'errore sopra citato.

Spero che qualcuno sappia aiutarmi, ho cercato tanto e tutti scrivevano la stessa cosa ma a loro funzionava correttamente mentre a me no :(

sto testando l'applicazione con un cellulare connesso ad internet, perchè sull'emulatore non funziona proprio. mi dice un'altro errore.

Ho testato la connessione al database con heidisql e funziona perfettamente, funziona perfettamente anche su un'applicazione vb.net e non riesco a farlo funzionare qui.

Per favore aiutatemi..  :-[ è da poco che mi sono affacciato al mondo della programmazione android

Offline tonno16

  • Utente storico
  • *****
  • Post: 1189
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema connessione Mysql con java jdbc
« Risposta #1 il: 06 Agosto 2014, 01:44:56 CEST »
0
Hai messo i permessi internet nel manisfet?

Forse la sintassi del link è diversa. Da MySQL a postgresql e altri cambia qualcosina

Offline shanedouglas

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema connessione Mysql con java jdbc
« Risposta #2 il: 06 Agosto 2014, 02:52:56 CEST »
0
Ciao grazie della risposta, nel manifest ho messo questi permessi

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />

Fuori da application nel manifest.

Per quanto riguarda la sintassi non saprei in quanto nei vari tutorial c'è la stessa mia sintassi nella stringa di collegamento.
Ti prego se puoi aiutarmi in qualche modo te ne sarei molto grato.
« Ultima modifica: 06 Agosto 2014, 04:05:16 CEST da shanedouglas »

Offline tonno16

  • Utente storico
  • *****
  • Post: 1189
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema connessione Mysql con java jdbc
« Risposta #3 il: 06 Agosto 2014, 09:57:01 CEST »
0
Si. Ho fatto largo uso di jbcs. Fammi tornare a casa e posto un po di roba

Offline shanedouglas

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema connessione Mysql con java jdbc
« Risposta #4 il: 06 Agosto 2014, 10:40:14 CEST »
0
Grazie mille spero di riuscire a risolvere il problema dopo che avrò letto il tuo post :)

Offline tonno16

  • Utente storico
  • *****
  • Post: 1189
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema connessione Mysql con java jdbc
« Risposta #5 il: 06 Agosto 2014, 12:07:15 CEST »
0
Questa è un normale asynktask. Che dovresti usare per qualsiasi operazioni in background.

si avvia con: new NomeClasseAsynkTask().execute().
passo un context per creare un progress dialog.
Il ddbms è un banale mysql;

Codice (Java): [Seleziona]
public class getDayInfo extends AsyncTask<Void,Void,String> {
               
                private ProgressDialog progress;
                private Context context;
                public getDayInfo(Context context) {
                        this.context=context;
                }
               
                public void onPreExecute() {
                         super.onPreExecute();
                               
                        progress = new ProgressDialog(CalendarioActivity.this);
                        progress.setMessage("Loading...");
                        progress.show();
                }
        @Override
        protected String doInBackground(Void... params) {
               
           String retval ="";
           
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
                retval = e.toString();
            }
         
            String url = "jdbc:mysql://sql2.freemysqlhosting.net:3306/sql239339";
            String username = "iltuouser";
            String password = "latuAPASSWORD";
            Connection conn;
     
            try {
                DriverManager.setLoginTimeout(5);
                conn = DriverManager.getConnection(url,username,password);
                Statement st = conn.createStatement();
                String sql;
               
                String day =yearResult+"-"+monthResult+"-"+dayResult;
                sql = "SELECT numero_alloggio,nominativo,data_fine,cod_prenotazione FROM PRENOTAZIONE,LOCALE,CLIENTE WHERE '"
                                + day
                                + "' BETWEEN data_inizio AND data_fine AND PRENOTAZIONE.cod_locale=LOCALE.cod_locale "
                                + "AND CLIENTE.cod_cliente=PRENOTAZIONE.cod_cliente "
                                + "AND LOCALE.ragione_sociale='"
                                + ragione_sociale
                                + "' ORDER BY numero_alloggio";

               
                ResultSet rs = st.executeQuery(sql);
                while(rs.next()) {      
                                                                                                        // alloggio             nominativo              data_fine               cod_prenotazione
                        SelectDayInfo s = new SelectDayInfo(rs.getString(1),rs.getString(2),rs.getString(3),rs.getString(4));
                        list.add(s);
                       
                }
               
                rs.close();
                st.close();
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                retval = e.toString();
            }
                        return retval;                    
           
        }
       
        @Override
        protected void onPostExecute(String str) {
             progress.dismiss();
             
             //toasT.maketext(ho finito)
                        });          
       
             
 
        }
               
        }// CLORE asynk

Offline shanedouglas

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema connessione Mysql con java jdbc
« Risposta #6 il: 06 Agosto 2014, 13:10:23 CEST »
0
Sto provando ma ricevo ancora errori, non è che ho capito molto di questo codice, per favore potresti scrivermi un codice per connettersi tramite il click del bottone? non ho capito poi bene il discorso dell'asynktask.

Io vorrei connettermi semplicemente al database e avere su una textview la scritta connesso, senza eseguire query e vorrei farlo tramite il click di un bottone. da questo codice che hai postato sembra che sia un'applicazione per la gestione delle prenotazioni a me serve solo la parte di connessione. Adesso sotto l'evento del bottone ho messo questo codice

Codice (Java): [Seleziona]
public void ButtonClick (View v){
        TextView text1=(TextView)findViewById(R.id.textView1);
               
        try {
             Class.forName("com.mysql.jdbc.Driver");
         } catch (ClassNotFoundException e) {
             e.printStackTrace();
             text1.setText(e.getMessage());
          }
       
        String url = "jdbc:mysql://sql3.freemysqlhosting.net:3306/NOME DATABASE";
        String username = "IL MIO USERNAME";
        String password = "LA MIA PASSWORD";
        Connection conn;

        try {
            DriverManager.setLoginTimeout(5);
            conn = DriverManager.getConnection(url,username,password);
            text1.setText("Connesso");
            conn.close();
            text1.setText("Disconnesso");
        }catch(SQLException e){
                text1.setText(e.getMessage());
        }
       
    }

Ho registrato un'account su freemysqlhosting naturalmente prima di avviare il codice e ricevo comunque questo errore

Communications link failure

The last packet sent successfully to the server was 0 milliseconds ago.
The driver as not received any packets from the server.

Offline tonno16

  • Utente storico
  • *****
  • Post: 1189
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema connessione Mysql con java jdbc
« Risposta #7 il: 06 Agosto 2014, 13:23:31 CEST »
0
1 il servizio di quel sito fa schifo. È lento 100 volte di più che altervista...... Lo dico perché lo so.

2 purtroppo se usi altri hosting non hai l'accesso al database direttamente... Ma solo da locale (ovvero la root del sito)

3 usai questo sito poiché per 10 euro avevi l'accesso diretto senza usare pagine in PHP.

4 si....dice che è gratuito ma fra 4 giorni ti dice di pagare.

5. Il codice mio funziona quindi anche da te deve. Se mi dai solamente il link al tuo DB (senza user e pass) in 10 min ti faccio un progetto con un bottone più il login.

Trovi molti tutorial sul web dove con 10 righe di PHP hai fatto una pagina per il login con solo due finestre di testo e basta.

Dici che vuoi solo sapere se sei connesso....quindi un unica paginetta PHP basterebbe. Bisogna vedere se te vuoi farci operazioni sul DB

Offline shanedouglas

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema connessione Mysql con java jdbc
« Risposta #8 il: 06 Agosto 2014, 13:29:55 CEST »
0
Il link del database è questo :

HOST: sql3.freemysqlhosting.net
NOME DB: sql348778

Si per ora volevo solo vedere la scritta connesso visto che sono giorni che cerco di vederla ahahahahahah
poi dopo devo effettuare anche operazioni come leggere e scrivere dati all'interno.

Con il PHP L'ho visto ma sembra complicata come cosa.
Se riuscissi a connettermi senza l'ausilio del PHP sarebbe perfetto per me.


Offline tonno16

  • Utente storico
  • *****
  • Post: 1189
  • Respect: +57
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Problema connessione Mysql con java jdbc
« Risposta #9 il: 06 Agosto 2014, 14:02:49 CEST »
0
Dammi una mail che te lo invio

Offline shanedouglas

  • Nuovo arrivato
  • *
  • Post: 12
  • Respect: 0
    • Mostra profilo
Re:Problema connessione Mysql con java jdbc
« Risposta #10 il: 06 Agosto 2014, 14:15:03 CEST »
0
dovrebbe essere scritta sul mio profilo.

Comunque eccola qui: gdsoftwarehouse@gmail.com

Grazie mille :)

Post unito: [time]06 Agosto 2014, 14:44:50 CEST[/time]
Sembra che tutto vada bene, mi da un errore che credo sia non e possibile utilizzare query vuote, ma non ho capito una cosa, come hai fatto a settare il tutto al click del bottone, penso tu abbia settato diversamente da come faccio io. potresti spiegarmelo, nel frattempo provo a far eseguire una query nel database :)

Grazie mille davvero :)

Post unito: 06 Agosto 2014, 15:16:18 CEST
Ho provato ad eseguire la query e mi dice l'applicazione SampleJBCD si è bloccata in modo anomalo e poi si chiude :(
« Ultima modifica: 06 Agosto 2014, 15:16:18 CEST da shanedouglas, Reason: Merged DoublePost »