Bonjour,
J'ai un problème qui commence sérieusement à me...
J'espère que vous allez pouvoir m'aider !
En fait, je veux me connecter à une base de données postgres. Je met le .jar contenant les drivers et compagnie dans mon projet. Jusque là, ça va ! Ensuite, je créé ma classe pour me connecter à la BDD. Voici le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 import java.sql.Connection; import java.sql.DriverManager; import android.content.Context; import android.content.SharedPreferences; public class AccesBDD { private Connection conn = null; private Context context; public AccesBDD(Context context) { this.context = context; } public boolean connection() { SharedPreferences prefs = context.getSharedPreferences("parametres", Context.MODE_PRIVATE); String adresse = prefs.getString("adresse", "").toString(); String port = prefs.getString("port", "").toString(); String name = prefs.getString("name", "").toString(); String url = "jdbc:postgresql://" + adresse + ":" + port + "/" + name; String login = prefs.getString("login", "").toString(); String password = prefs.getString("password", "").toString(); try { Class.forName("org.postgresql.Driver"); conn = DriverManager.getConnection(url, login, password); } catch (Exception e) { e.printStackTrace(); return false; } return true; } }
Et voilà comment je l'utilise dans mon Activity :
Voici le message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 // Attribut de ma classe private AccesBDD abdd; // Dans le onCreate abdd = new AccesBDD(this); // Dans un méthode if(!abdd.connection()){ LayoutInflater inflater = getLayoutInflater(); View v = inflater.inflate(R.layout.toast, (ViewGroup) findViewById(R.id.lil_toast)); TextView tvToast = (TextView) v.findViewById(R.id.tv_toast); tvToast.setText(R.string.texte_toast_erreur_bdd); Toast toast = new Toast(this); toast.setView(v); toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.show(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 02-02 09:52:26.460: W/System.err(9439): org.postgresql.util.PSQLException: Quelque chose d'inhabituel a provoqué l'échec du pilote. Veuillez faire un rapport sur cette erreur. 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.Driver.connect(Driver.java:287) 02-02 09:52:26.460: W/System.err(9439): at java.sql.DriverManager.getConnection(DriverManager.java:180) 02-02 09:52:26.460: W/System.err(9439): at java.sql.DriverManager.getConnection(DriverManager.java:214) 02-02 09:52:26.460: W/System.err(9439): at com.consultation.AccesBDD.connection(AccesBDD.java:37) 02-02 09:52:26.460: W/System.err(9439): at com.consultation.ConsultationActivity.verifierConnexion(ConsultationActivity.java:184) 02-02 09:52:26.460: W/System.err(9439): at com.consultation.ConsultationActivity.onActivityResult(ConsultationActivity.java:175) 02-02 09:52:26.460: W/System.err(9439): at android.app.Activity.dispatchActivityResult(Activity.java:4581) 02-02 09:52:26.460: W/System.err(9439): at android.app.ActivityThread.deliverResults(ActivityThread.java:2814) 02-02 09:52:26.460: W/System.err(9439): at android.app.ActivityThread.handleSendResult(ActivityThread.java:2861) 02-02 09:52:26.460: W/System.err(9439): at android.app.ActivityThread.access$1000(ActivityThread.java:122) 02-02 09:52:26.460: W/System.err(9439): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054) 02-02 09:52:26.460: W/System.err(9439): at android.os.Handler.dispatchMessage(Handler.java:99) 02-02 09:52:26.460: W/System.err(9439): at android.os.Looper.loop(Looper.java:132) 02-02 09:52:26.460: W/System.err(9439): at android.app.ActivityThread.main(ActivityThread.java:4123) 02-02 09:52:26.460: W/System.err(9439): at java.lang.reflect.Method.invokeNative(Native Method) 02-02 09:52:26.460: W/System.err(9439): at java.lang.reflect.Method.invoke(Method.java:491) 02-02 09:52:26.460: W/System.err(9439): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841) 02-02 09:52:26.460: W/System.err(9439): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599) 02-02 09:52:26.460: W/System.err(9439): at dalvik.system.NativeStart.main(Native Method) 02-02 09:52:26.460: W/System.err(9439): Caused by: android.os.NetworkOnMainThreadException 02-02 09:52:26.460: W/System.err(9439): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1077) 02-02 09:52:26.460: W/System.err(9439): at java.net.InetAddress.lookupHostByName(InetAddress.java:477) 02-02 09:52:26.460: W/System.err(9439): at java.net.InetAddress.getAllByNameImpl(InetAddress.java:277) 02-02 09:52:26.460: W/System.err(9439): at java.net.InetAddress.getAllByName(InetAddress.java:249) 02-02 09:52:26.460: W/System.err(9439): at java.net.Socket.tryAllAddresses(Socket.java:126) 02-02 09:52:26.460: W/System.err(9439): at java.net.Socket.<init>(Socket.java:204) 02-02 09:52:26.460: W/System.err(9439): at java.net.Socket.<init>(Socket.java:171) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.core.PGStream.<init>(PGStream.java:62) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:76) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:125) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.jdbc3g.AbstractJdbc3gConnection.<init>(AbstractJdbc3gConnection.java:22) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:32) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.Driver.makeConnection(Driver.java:393) 02-02 09:52:26.460: W/System.err(9439): at org.postgresql.Driver.connect(Driver.java:267) 02-02 09:52:26.460: W/System.err(9439): ... 18 more
Le .jar que j'utilise est : postgresql-9.0-801.jdbc4.jar
Pour préciser, j'ai un autre programme où je fais la même chose et qui fonctionne. D'où le fait que ça m'énerve et que je ne comprend pas pourquoi ça ne marche pas.
Partager