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

XMLRAD Discussion :

Upload en base avec xmlrad2006 - Java


Sujet :

XMLRAD

  1. #1
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 114
    Points
    114
    Par défaut Upload en base avec xmlrad2006 - Java
    Bonjour,

    J'arrive bien a sauvegarder mes fichiers dans le repertoire d'upload mais comment faire apres pour le mettre dans un champ de type blob sous mysql ?
    Y-a t-il une action toute faite pour cela ?

    mon environnement :
    XMLRAD2006
    MySQL
    J2EE

    merci par avance pour votre aide
    Michel

  2. #2
    Membre actif Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Points : 278
    Points
    278
    Par défaut
    Pour ce qui concerne la manipulation des champs blob (ou image, ...), j'instancie et utilise en Delphi un objet TADoQuery (connexion native ADO) qui lui permet cela. En Java tu pourras certainement faire cela aussi avec un objet qui supporte ces champs (_Connection, _RecordSet, ...) . L'inconvénient est que tu doubles la connexion à la base, attention donc à l'architecture de ton application, à la gestion des transactions, etc...
    Autrement à part passer par une appli externe, je vois pas trop...

    Michael

  3. #3
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 114
    Points
    114
    Par défaut
    ah mince je pensais qui avait une methode pour au moins recuperer la connexion avec la base ....
    bon je vais essayer d'adopter le meme principe que toi en Java en attendant d'avoir une instruction de ce type dans une prochaine version

    a+
    michel

  4. #4
    Membre actif Avatar de Jeweller
    Inscrit en
    Août 2003
    Messages
    357
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 357
    Points : 278
    Points
    278
    Par défaut
    Oui, j'y avais pensé aussi... et peut etre c'est réalisable d'ailleurs? Mais en attendant la "double connexion" me satisfait.

  5. #5
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 114
    Points
    114
    Par défaut
    mais oui ils vont nous la faire cette instruction

    et surtout qu'a mon avis au niveau architecture c'est pas top d'avoir 2 connexions pour la meme base surtout pour faire ce genre de chose ... pas facile a expliquer la bidouille surtout si on veut aller sur plusieurs bases comme XMLRAD le permet ....

    A mediter

    a+

    Michel

  6. #6
    Membre régulier
    Inscrit en
    Février 2005
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 154
    Points : 114
    Points
    114
    Par défaut
    Allez je vous poste le code java qui fonctionne pour ceux qui en aurait besoin

    Par contre avis a la population pour avoir l'acces a la base d'une data source ce qui peut servir pour faire des requetes du type ou mapper les champs de type blob et adieu les bidouilles et vive le non codage

    au debut les imports habituels ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import xmlclx.*;
    import java.io.*;
    import java.sql.*;
    import java.text.*;
    import java.util.Date;
    Dans la classe la declaration de notre nouvelle connexion ( c'est celle la que j'aimerais eviter ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	private Connection conn = null;

    Dans un beforexmlgram par exemple (ici on ne gere qu'un fichier)
    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
     
    		// nom du fichier sans les repertoires
    		String requestFileName = xmlRequest.getFileName(0); 
    		// nom du fichier de stockage
    		String requestTempFileName = context.getValue("XMLC_DefaultDataDir") + "\\upload\\" +  requestFileName; 
        	xmlRequest.saveFileNo(0, requestTempFileName);
     
         	try
         	{
         		// ouverture connexion     		
    Class.forName("com.mysql.jdbc.Driver");
       			conn = DriverManager.getConnection("jdbc:mysql://localhost/test","root","");
        		conn.setAutoCommit(true);
     
         		File myFile = new File(requestTempFileName);
         		FileInputStream istreamImage = new FileInputStream(myFile);
         		try 
         		{
         			// Insert into database
         			PreparedStatement ps = conn.prepareStatement("INSERT INTO fichiers (TEXT_DSC, TEXT_DATA) values (?,?)");
         		    ps.setString(1, requestFileName);
         		    ps.setBinaryStream(2, istreamImage, (int) myFile.length());
         		    ps.executeUpdate();
         		    ps.close();
             		// fermeture de la connexion     			conn.close();
         		 } 
         		 finally 
         		 {
         			istreamImage.close();
         		 }
     	    }catch (Exception ex){
    	    	xmlRequest.raiseError("Exception....", ex.toString());
            }
    pour la table fichier j'ai mini un longblob pour le champ TEXT_DATA

    A+
    michel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Communiquer avec une base distante en HTTP avec servlet Java
    Par nicolofontana12 dans le forum Android
    Réponses: 9
    Dernier message: 12/03/2015, 00h53
  2. Débuter avec applet java et base access
    Par abdelghani_k dans le forum Applets
    Réponses: 0
    Dernier message: 24/03/2012, 18h13
  3. Upload de fichier avec applet java style facebook
    Par sacados1 dans le forum Applets
    Réponses: 4
    Dernier message: 09/10/2009, 16h07
  4. [phpMyAdmin] Administration de ma base avec PHP et exploitation de celle-ci en Java
    Par hachara dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 15/01/2009, 14h06
  5. Réponses: 2
    Dernier message: 17/07/2007, 11h34

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