Salut a tous,
j'ai une multitude de questions, mais je commence par celle ci :
1. j'aimerais ecrire une classe qui me retourne tout les tableaux qui sont dans ma BDD!! sous forme d'object Table(une autre classe)!!
Merci
Salut a tous,
j'ai une multitude de questions, mais je commence par celle ci :
1. j'aimerais ecrire une classe qui me retourne tout les tableaux qui sont dans ma BDD!! sous forme d'object Table(une autre classe)!!
Merci
tu appelle quoi un "tableau" dans ta base de donnée, une table? Si oui, le sql pour avoir la liste des tables sera spécifique au SGBD que tu utilise.
Je voulais dire toutes les Tables, avec MySql la commande est :
Bon j'ai fait 2 classes une classe Database.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part show tables;
et une classe SQLSingleton.java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 package com.moi; public class Database { }
Bon la question comment me connecte au mysql dans la classe Database et recupere toutes les tables(show tables)???
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
40
41
42
43 package com.moi; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class SQLSingleton { private static Connection instance = getConnection(); private SQLSingleton(){} public static Connection getInstance(){ return instance; } private static Connection getConnection(){ try { Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (InstantiationException e1) { e1.printStackTrace(); } catch (IllegalAccessException e1) { e1.printStackTrace(); } catch (ClassNotFoundException e1) { e1.printStackTrace(); } String sUser = "root"; String sPassword = ""; String sUrl = "jdbc:mysql://localhost:3306/verteiltesystem1"; Connection con = null; try { con = DriverManager.getConnection(sUrl, sUser, sPassword); } catch (SQLException e) { e.printStackTrace(); } return con; } }
Bonjour,
Je propose d'enlever le Singleton 'SQLSingleton'
Et de faire une intance de Connection dans la Database.
La Database, dans sont constructeur, se connectera à la base de donnée (on peut reprendre le code du SQLSingleton me semble t'il).
Pour le reste, je propose de suivre un des magnifiques tutoriels du site: http://jmdoudoux.developpez.com/cour...va/partie5.php (y en a d'autre)
Et finalement, je propose aussi de faire une interface pour laisser le possibilité de se connecter à plusieurs base de donnée (sans se limiter à une seule, grace à l'utilisation de l'interface)
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
c'aurait ete bien beau!! mais le Prof nous a donne des directives!!!
Bon voici ce que j'ai fais :
Une classe Properties :
Une classe Singleton :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 package de.example; public class DatabaseProperties { public static final String HOSTNAME = "jdbc:mysql://localhost/db1"; public static final String USERNAME = "root"; public static final String PASSWORD = "toor"; }
et j'utilise ainsi dans la classe database :
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
40 package de.example; import java.sql.*; import com.mysql.jdbc.Connection; public class DatabaseSingleton { public static DatabaseSingleton ref; private Connection connection; private DatabaseSingleton(){ try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static DatabaseSingleton getDatabaseSingleton() { if(ref == null){ ref = new DatabaseSingleton(); } return ref; } public Object clone() throws CloneNotSupportedException { throw new CloneNotSupportedException(); } public Connection getConnection(boolean autoCommit) { try { DriverManager.getConnection(DatabaseProperties.HOSTNAME, DatabaseProperties.USERNAME, DatabaseProperties.PASSWORD); } catch (SQLException e) { e.printStackTrace(); } return connection; } }
Neamoins j'ai un probleme au niveau de :
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
40
41
42
43
44
45
46
47 package de.example; import java.sql.*; public class Database { private static void display(String message){ System.out.println(message); } private static void stop(String message){ System.err.println(message); System.exit(99); } public static void main(java.lang.String[] args) throws SQLException{ DatabaseSingleton con = null; ResultSet result = null; String request = "show Tables"; try{ Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){ stop("Cannot load the jdbc:mysql driver"); } display("Connection to the Database"); con = DatabaseSingleton.getDatabaseSingleton(); con.getConnection(true); display("Database is connected"); display("Execute Request"); try{ Statement stmt = con.createStatement(); result = stmt.executeQuery(request); display("Request succeeded"); }catch(SQLException e){ stop("Error with the Request Execution"); } display("Programm End"); System.exit(0); } }
Statement stmt = con.createStatement();
result = stmt.executeQuery(request); Eclipse me montre une erreur au niveau du "createStatement"
Quelqu'un peut il me donne un coup de pouce??
Merci!
Je suis bien curieux de savoir qui va rattrapper la SQLException qui s'échappe du main. (Je sous-entends sans un arrêt du programme :p)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public static void main(java.lang.String[] args) throws SQLException
Sinon pour le Statement, je ne sais pas...
Je me demande si votre erreur est une erreur à l'execution, ou à la compilation. Car à la compilation Eclipse donne beaucoup d'indices (normalement) (NetBeans aussi :p)
Si c'est à l'execution, vous devez au moins nous donner (et connaitre) le nom de l'erreur / exception.
Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi
Ma page sur DVP
Mon Portfolio
Qui connaît l'erreur, connaît la solution.
throws Exception a ete enleve!!
le message d'erreur est le suivant :
The method createStatement() is undefined for the type DatabaseSingleton
createStatement, c'est une méthode de l'objet Connection java, pas de DatabaseSingleton
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager