Na prv.pl utworzyłem bazę danych mysql. Jak powinien wyglądać przykładowy kod midletu łączącego
się z taką bazą danych przez internet ?
utworzyłem drugą baze na yoyo.pl
otrzymałem nazwe serwera:mysql2.yoyo.pl port:3306 nazwe bazy,użytkownika i hasło
jednak program nie może się połączyć z bazą
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class klasa {
public static void main(String args[]) {
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://mysql2.yoyo.pl:3306/nazwa bazy",
"uzytkownik", "haslo");
if(!con.isClosed())
System.out.println("Successfully connected to " +
"MySQL server using TCP/IP...");
} catch(Exception e) {
System.err.println("Exception: " + e.getMessage());
} finally {
try {
if(con != null)
con.close();
} catch(SQLException e) {}
}
}
}
Błąd:
Exception: Communications link failure due to underlying exception:
- BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect
STACKTRACE:
java.net.SocketException: java.net.ConnectException: Connection refused: connect
at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:156)
at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:284)
at com.mysql.jdbc.Connection.createNewIO(Connection.java:2569)
at com.mysql.jdbc.Connection.<init>(Connection.java:1485)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at klasa.main(klasa.java:12)
- END NESTED EXCEPTION **
Last packet sent to the server was 16 ms ago.
Jak dla mnie connection refused = komp stoi, na porcie nie ma servera.
a jaka jest nazwa bazy? bo jesli "nazwa bazy" to w linkach spacja jest raczej niedozwolona :-)
Program już działa założyłem baze na db4free.net.
Do wyszukiwania informacji używam klasy Statement
Statement s = con.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM kontakty") ;
Gdy przeniose ten kod do midletu dostaje błąd:
Error preverifying class klasa VERIFIER ERROR klasa.startApp()V: Cannot find class java/sql/Statement
mam dołączone biblioteki JRE i Connector/J
Tak, ale w JME nie masz do dyspozycji paczki java.sql. Należy przerobić dostęp na dostęp po webservices lub xml (via Http)