p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Responsable Java

    Avatar de Mickael Baron
    Homme Profil pro
    Ingénieur de Recherche en Informatique
    Inscrit en
    juillet 2005
    Messages
    8 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur de Recherche en Informatique
    Secteur : Service public

    Informations forums :
    Inscription : juillet 2005
    Messages : 8 485
    Points : 42 321
    Points
    42 321

    Par défaut Participez à la FAQ JDBC

    Bonjour,

    La FAQ JDBC est ouverte à tous, vous pouvez donc y participer activement. Soit vous pouvez poster vos questions et réponses dans cette enfilade, soit vous pouvez utiliser l'application collaborative d'édition de FAQ.

    L'adresse de la FAQ : http://java.developpez.com/faq/jdbc/

    Merci à tous pour vos contributions.

    L'équipe Java
    Ingénieur de Recherche en informatique au LIAS / ENSMA
    Responsable Java de Developpez.com

    Page de cours : mbaron.developpez.com
    Blog : keulkeul.blogspot.com
    Page Pro : www.lias-lab.fr/members/mickaelbaron
    LinkedIn : www.linkedin.com/in/mbaron
    Twitter : www.twitter.com/mickaelbaron

  2. #2
    Futur Membre du Club
    Inscrit en
    octobre 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : octobre 2003
    Messages : 34
    Points : 17
    Points
    17

    Par défaut

    JDBC : Comment éviter le problème de DataTruncation survenant très souvent avec le MySQL Connector/J.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Des pertes de précisions,  overflows, ... peuvent avoir lieu quand vous convertissez des valeurs numériques d'un type java vers mysql. Ceci va lever des exceptions, parfois non désirées.
     
    Si vous voulez éviter ces désagréments, vous pouvez affecter la valeur false au paramètre jdbcCompliantTruncation lors de la connexion à MySQL.
     
    Exemple : 
     
    jdbc:mysql://localhost/database?jdbcCompliantTruncation=false
    J'espère que j'aurai pu faire avancer les choses avec ce tips !

  3. #3
    Candidat au titre de Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2002
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : mai 2002
    Messages : 15
    Points : 10
    Points
    10

    Par défaut

    Comment intégrer directement le contenu d'un fichier Xml dans une base de donnée Oracle .

    exemple de fichier xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <root>
       <doc>
           <champ1>..</champ1>
           <champ2>..</champ2>
           ...
       </doc>
       <doc>
    ....
       </doc>
    </root>
    table correspondante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TABLE table1  
      champ1    VARCHAR2 (3)  NOT NULL, 
      champ2    NUMBER, 
      ...
    se procurer la bibliothèque xsu....jar dans le Xml Developpemt Kit for java

    il suffit ensuite d'ouvrir une connexion JDBC, puis d'éxecuter la méthode ad'hoc comme dans l'extrait de code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String Url = "jdbc:oracle:thin:@"+IP+":"+PORT+":"+NOM_BASE;
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    Connection conn = DriverManager.getConnection(Url, user, pass);
    
    URL urlFic = OracleXMLSave.getURL(ficXml);
    OracleXMLSave oracleXMLSave = new OracleXMLSave(conn, tabName);
    int nb = oracleXMLSave.insertXML(urlFic);
    oracleXMLSave.close();
    
    conn.close();
    Et voila c'est fait .
    La même API fourni la méthode inverse pour constituer un fichier XML à partir d'une simple requete SQL fournie .

    Barny

  4. #4
    Membre du Club Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : décembre 2006
    Messages : 163
    Points : 69
    Points
    69

    Par défaut comment extraire un champ de la base de donnée?

    si on veut par exemple extraire une somme des enregistrements d 'un champ ou le nombre des enregistrements voila la fonction
    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
     
    public String get_Word(String value){
    	  ResultSet rs;
    		try {
    			rs=statm.executeQuery(value );
    		   	System.out.println(value);		
    		    rs.next();
    		   	return rs.getString("M");
     
    		} catch (Exception e) { e.printStackTrace();
    	System.out.println("Clsgestion.getWord()	:" +
    							" impossible de touver: " + value );
    						return null;} 
      } 
    ....
    // il faut indiquer le nom du champ par l'aliace 'as M'  
    String s=get_Word("select sum(n_etudiant) AS M from etudiant");

  5. #5
    Membre du Club Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : décembre 2006
    Messages : 163
    Points : 69
    Points
    69

    Par défaut Export & Import base mysql

    je vous propose deux codes pour exporter et importer votre base mysql en java :

    Exportation:
    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
     
    try{
        Runtime.getRuntime().exec(
    		// 1 - La commande a exécuter (le shell), en séparant les paramètres :
    		new String[] {
    			"cmd.exe", // ou command.com sous Windows 9x
    			"/C",
    			"mysqldump.exe --user=farid --password=farid mabase > C:\\base.sql" },
    		// 2 - Les variables d'environnements (null = hérité du parent)
    		null,
    		// 3 - Le répertoire de travail
    		new File("C:\\Program Files\\EasyPHP1-8\\mysql\\bin\\")
    	);
     
      }catch(IOException e){ System.out.println("erreur"); }
    et pour importer une base mysql depuis un fichier sql voici le code
    Importation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    try{
     Runtime.getRuntime().exec(
    		new String[] {
    			"cmd.exe", 
    			"/C",
    // il faut remplacer mysqldump par mysql dans le cas d' importation			
    "mysql.exe --user=farid --password=farid mabase < C:\\base.sql" },
    		null,
    		new File("C:\\Program Files\\EasyPHP1-8\\mysql\\bin\\")
    	);
     
      }catch(IOException e){ System.out.println("erreur"); }
    Remarque:
    avant d'importer le fichier sql, il faut d'abord créer une base de donnée vide
    Knoweledge Is Power In Digital World

  6. #6
    Nouveau Membre du Club
    Inscrit en
    octobre 2004
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : octobre 2004
    Messages : 56
    Points : 34
    Points
    34

    Par défaut

    Bonjour, je ne sais pas si ça a sa place dans la FAQ JDBC mais je me lance en espérant qu'il faudra pas trop la remettre en forme :

    comment utiliser une base de donnée ne possédant pas de driver jdbc mais un driver odbc?

    2 solutions :

    - unixodbc a priori uniquement pour les machines unix-likes, cette solution dépends de l'installation de librairie sur le serveur et d'un driver ODBC spécifique a la DB utilisé sur le poste unix (liste ici. Certains drivers sont payants d'autres gratuits, libres ou shareware. Cette solution n'est pas limité a java

    -rmijdbc : cela permet d'utiliser un driver jdbc a travers le réseau même s'il n'est pas prévu pour cela (typiquement: le driver jdbcodbc de sun). Une utilisation possible est de mettre une source odbc sur une machine windows (dans mon cas ms access) et de l'atteindre via le rmijdbc sur le serveur distant et le pont jdbcodbc de Sun sur la machine windows

  7. #7
    Membre du Club Avatar de mitnick2006
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    décembre 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : décembre 2006
    Messages : 163
    Points : 69
    Points
    69

    Par défaut Comment savoir si un champ existe dans la base ?

    pour tester si un champ existe dans la base, j ai développé cette fonction qui retourne un boolean .

    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
     
    Statement statm;
    ...
    public boolean is_existe(String Sql)
    {
    		ResultSet rs;
    		try {
    			rs=statm.executeQuery(Sql);
     
    		        rs.next();
     
    		       if(rs.getRow()==0) 
                                 return false;
    		       else 
                                 return true;
                        } catch (Exception e) 
                                 { 
                                   e.printStackTrace();
    	                       System.out.println("Cls_base.is_existe()	:" +
    		               " impossible de touver: " +Sql);
    			       return false;
                                  }
    } 
    // notre requête sql peut etre sous la forme :
    // sql= "select "+champ+" from "+table+" where "+filtre+"='"+data+"'";
    Knoweledge Is Power In Digital World

  8. #8
    Membre émérite
    Avatar de MasterMbg
    Homme Profil pro
    Développeur informatique
    Inscrit en
    octobre 2011
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2011
    Messages : 489
    Points : 856
    Points
    856

    Par défaut Sélectionner les lignes d'une table en utilisant PreparedStatement

    Bonjour à tous,
    il est conseillé d'utiliser PreparedStatement dans les interrogations et les insertions dans des tables des bases de données. Certes, l'interrogation a souvent compliquer. Ci dessous, vous trouverez une petite méthode qui l'utilise sans trop de peines. On exécute la requête à l'aide d'une variable PreparedStatement, et on parcourt le résultat avec un ResultSet.
    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
     
    public static void selectionner(Connection cn, String table){
    PreparedStatement ps;
    ResultSet rs;
    //Préparer une requête
    ps = cn.prepareStatement("select * from "+table);
    //Exécuter cette dernière
    ps.executeQuery();
    //on récupère le ResultSet du ps et on le passe au rs
    rs = ps.getResultSet();
    //on parcourt rs
    while (rs.next()) {
    /*Traitement des lignes récupérées
        ...........
    */
    }
    //Fermetures
    rs.close();
    ps.close();
    }
    Bonne pratique
    Plus tu apprends sérieusement, plus tu te rapproches d'un savoir noble. Une chose est certaine, les difficultés ne s'écarteront de ton chemin...

Discussions similaires

  1. Participez à la FAQ Struts
    Par Mickael Baron dans le forum Struts
    Réponses: 3
    Dernier message: 05/04/2007, 22h00
  2. [Participez à la FAQ !] La question de la semaine
    Par Giovanny Temgoua dans le forum Langage
    Réponses: 18
    Dernier message: 13/12/2005, 09h58
  3. Participez à la FAQ Java EE
    Par Mickael Baron dans le forum Java EE
    Réponses: 1
    Dernier message: 28/08/2003, 11h49

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