Oppure

Loading
30/09/11 14:59
ccini
Ciao ragazzi...ho un database mysql sul mio pc...e vorrei interrogarlo da un'applicazione android, ho bisogno di farlo senza web service...è possibile?
Io ho provato in questo modo....ma purtroppo mi da errore...

public class ConnectDBActivity extends Activity {
	
		@Override
		public void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		System.out.println("MySQL Connect Example.");
		Connection conn = null;
		String url = "jdbc:mysql://localhost:3306/";
		String dbName = "Vestiti";
		String driver = "com.mysql.jdbc.Driver";
		String userName = "admin"; 
		String password = "admin";
		try {
		  Class.forName(driver).newInstance();
		  conn = DriverManager.getConnection("url+dbName,userName,password);

		} catch (Exception e) {
		  e.printStackTrace();
		}
		}
		}


l'errore che mi da è il seguente (da Logcat):
MESSAGE: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused
STACKTRACE:
java.net.SocketException: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:143)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:225)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1805)
at com.mysql.jdbc.Connection.<init>(Connection.java:452)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at java.sql.DriverManager.getConnection(DriverManager.java:226)
at com.example.connessione.ConnectDBActivity.onCreate(ConnectDBActivity.java:28)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access00(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
** END NESTED EXCEPTION **
at com.mysql.jdbc.Connection.createNewIO(Connection.java:1875)
at com.mysql.jdbc.Connection.<init>(Connection.java:452)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:411)
at java.sql.DriverManager.getConnection(DriverManager.java:191)
at java.sql.DriverManager.getConnection(DriverManager.java:226)
at com.example.connessione.ConnectDBActivity.onCreate(ConnectDBActivity.java:28)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access00(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)

Ho provato lo stesso codice in java e mi si connette al db...non so come fare...
Grazie in anticipo per l'aiuto...

aaa
30/09/11 15:22
pierotofy
Gli errori vanno letti....

MESSAGE: java.net.ConnectException: localhost/127.0.0.1:3306 - Connection refused


Qui stai cercando di connetterti al dispositivo android (localhost e' l'indirizzo di loopback... leggiti wikipedia), ovviamente MySQL non e' installato sul dispositivo, ma sul tuo pc (che ha un altro indirizzo di rete).

String url = "jdbc:mysql://localhost:3306/";


Cambia localhost con l'indirizzo del tuo computer dove e' installato MySQL... e assicurati che le connessioni da remoto siano abilitate nella configurazione di MySQL. Di default non lo sono.

Il mio blog: piero.dev