IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web en Java Discussion :

Communication d'une application web J2EE avec une base de données


Sujet :

Développement Web en Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 47
    Points : 36
    Points
    36
    Par défaut Communication d'une application web J2EE avec une base de données
    Bonjour,
    je développe une application j2ee avec Netbeans qui visualise des applets java.
    Ces applets prennent en entrée un fichier qui est stocké dans une base de donnée.
    Pour le moment j'ai le projet java de type "java library" qui génère les applets.
    et j'ai le projet javaweb qui visualise les applets.
    Mon problème c'est à quel niveau je relie la base de donnée à mon projet?
    j'ai écrit une classe java qui permet de se connecter à la base de donnée, mais je ne sais pas où est ce que cette classe doit etre placée: dans le projet java? ou dans le projet java web?
    Aussi, à quel niveau (sevlet/ jsp...) je dis à mes applets qu'il doivent prendre en entrée tel fichier de la base de donnée.
    Je n'ai que peu de concepts sur j2ee, donc je ne sais pas faire le lien entre les différents concepts qu'il utilise.
    Pourriez vous m'aider svp?

  2. #2
    Membre actif
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Points : 255
    Points
    255
    Par défaut
    Vaste problème qui possède de nombreuses solutions en Java. Pour faire très court, ta connexion à ta base de données ne peut pas se faire dans ton applet pour des raisons de sécurité évidente (login et mot de passe dans le code source, par exemple...).
    D'une manière générale, en JEE, on accède à la base de données côté serveur (Servlet) selon le Design Pattern DAO. On crée des objets simples appelés POJO et qui ressemble aux structures de données contenues dans ta base de données (des "fichiers" dans ton cas...). Enfin, on transforme ce qui est nécessaire pour "épurer" l'information qui arrive au niveau du client. Le rôle de la servlet est de sérialiser cette information et de la transmettre via le bon protocole (HTML avec la technologie JSP, par exemple).

    Dans ton cas, tu dois exposer les méthodes et les objets de ton projet côté serveur via une API qui s'appelle RMI (http://jmdoudoux.developpez.com/cour...a/chap-rmi.php).
    Bon courage !

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 47
    Points : 36
    Points
    36
    Par défaut
    Merci pour votre réponse, je vais regarder cette solution qui me semble un peu floue pour le moment
    Mais je voudrais savoir s'il n'y a pas plus simple pour résoudre ce problème.
    Je voulais mettre des liens dans ma page web, chaque liens correspond à un fichier à lire dans la base de donnée.
    pour la connexion à la BD et l'extraction du fichier, je voulais utiliser ce 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
    39
    public class DB_Access {
     
    public  String getFile () throws DataIOException {
    String file_content;
    try {
    // chargement du driver ODBC de microsoft, le nom du paquetage 
    //est donnée. Chargement dynamique de JdbcOdbcDriver.class
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    } 
    catch (ClassNotFoundException e) {
    System.out.println("Unable to load Driver Class");
    }
    try {
    // connexion à la base « nom de la base », nom de l’utilisateur, le mot de passe
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost/wafa_bd","root", "");
    // création et exécution d’une instruction SQL
    Statement stmt = con.createStatement();
    //instruction SQL, résultat stocké dans un ResultSet
    ResultSet rs = stmt.executeQuery("SELECT content FROM tab");
    System.out.println(rs.toString());
    //Affichage des résultats
    while(rs.next()) {
    file_content=rs.getString("content");
     
    }
    // restitution des ressources de la base
    rs.close();
    stmt.close();
    con.close();
    } 
     
    catch (SQLException se) {
    // Informe l’utilisateur de toute erreur SQL
    System.out.println("SQL Exception: " + se.getMessage());
    se.printStackTrace(System.out);
    } 
    return file_content;
    } 
    }
    Je voudrais que mon applet prenne en paramètre le résultat retourné par ce code (file_content). En meme temps, je ne sais pas où insérer ce code.
    Est ce que cette démarche est faisable? si oui pourriez vous me donner plus de détails? merci

  4. #4
    Membre actif
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Points : 255
    Points
    255
    Par défaut
    Je vois trois possibilités pour ton problème :
    1) Tu crées un service distant en utilisant RMI pour continuer sur ta lancée
    2) Tu gardes ton projet "serveur" et tu crées un projet Web dynamique full HTTP (pas d'Applet). Dans ce cas, ton projet "serveur" et ton projet "Web" sont tous les deux sur le même serveur et ton projet "serveur" peut être importer dans l'autre en tant que librairie jar... C'est ce que tu apprendras dans n'importe quel tuto pour débuter JEE.
    3) Tu laisses tomber Java et tu copies directement le code que tu viens de coller dans ton applet. Sauf qu'au lieu de se connecter avec le compte 'root', les utilisateurs utilisent chacun leur propre compte (tu peux créer un compte public) et dans l'URL de connexion, au lieu de "jdbc:mysql://localhost/wafa_bd" tu auras l'adresse distante de la base de données. Après tu n'as plus qu'à gérer la configuration au niveau de ta base de données.
    Si tu utilises la méthode 3, je te conseille fortement de crypter ce qui passe sur le réseau

Discussions similaires

  1. exemple d'une application web J2EE avec netbeans
    Par wafabrj dans le forum NetBeans Platform
    Réponses: 0
    Dernier message: 22/04/2012, 15h32
  2. Réponses: 8
    Dernier message: 17/02/2010, 12h19
  3. Réponses: 4
    Dernier message: 08/01/2008, 23h46
  4. Réponses: 1
    Dernier message: 09/03/2007, 11h38
  5. Réponses: 0
    Dernier message: 17/10/2005, 08h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo