[JAVA + SQL] installation...

installation... [JAVA + SQL] - Programmation

Marsh Posté le 04-02-2002 à 21:36:05    

lut  
 
jai un projet a faire qui utilise du sql avec du java.
j'aimerai savoir comment il est possible de mettre en place une communication entre JAVA et un SGBD ( je precise que le serveur ou l'on travail est un ibm avec AIX dessus ou l'on a oracle 8, postgreeSQL ou encore MySQL) . En regardant les docs dispo sur le site de sun je me suis apercue qu'il fallait utiliser des "drivers", mais je ne sais po s'il sont vraiment necessaires ni comment les obtenires ainsi que les installer.
 
si vous pouviez me clarifier les choses se serai sympa, merci !

Reply

Marsh Posté le 04-02-2002 à 21:36:05   

Reply

Marsh Posté le 04-02-2002 à 21:46:02    

Effectivement, pour accéder à une base de données depuis Java, il va te falloir un driver, et l'API jdbc. Pour plus d'infos, va voir là :  
http://java.sun.com/products/jdbc/
 
Tu y trouvera (en anglais) quelques explications sur comment ça marche, un moteur de recherche de drivers, en fonction des bases à utiliser, etc, etc..
 
Bon courage.

Reply

Marsh Posté le 04-02-2002 à 21:55:00    

ca c du gpl
medite  :D  
import java.awt.*;
import java.sql.*;
import java.util.*;
import javax.swing.*;
 
 
 
/**
 * La classe <tt>MySQLUtilities</tt> permet de créer une connexion vers un serveur <i>MySQL</i>.<br>
 * et d'effectuer des operations sur cette connection.
 **/
 
public class MySQLUtilities
{
 private Connection connection;
 private String host;
 private String port;
 private String user;
 private String url;  
 private String base;
 
 /**
  * Construit une connection vers un serveur <i>MySQL</i> en utilisant les données passées en paramètre.
  * @param _host le nom de serveur vers lequel se fera la connection (uniquement à des fins d'affichage)
  * @param _port le port sur lequel de fera la connection (uniquement à des fins d'affichage)
  * @param _user le nom de l'utilisateur (uniquement à des fins d'affichage)
  **/
 public MySQLUtilities( String host,String database, String user,String pass)  
 {  
  this.user   = user;
  this.host        = host;
  this.base   = database;
  try  
  {
        Class.forName("org.gjt.mm.mysql.Driver" ).newInstance();
        String url = "jdbc:mysql://" + host + "/" + base + "";  
   try  
   {connection = DriverManager.getConnection(url,user,pass);  
   }catch (SQLException exception)  
     {System.out.print("exception :" + exception + "\n" );}
                 }catch (Exception exception)  
     {
     System.out.print("exception :" + exception + "\n" );
                 }  
 }  
   
 
 /**
  * Renvoie le contenu d'une table
  *
  * @return Le vecteur contenant les nom des champs.
  *
  * @param _database la base de données d'où est extraite la table
  * @param _table la table dont les données sont à extraire.
  **/
 public Vector getTableData(String _table)
 {
  String table = new String(_table);
  Vector resultat = new Vector();
   
  try
  {
   Statement getTableDataStatement = connection.createStatement();
   ResultSet getTableDataResultSet = getTableDataStatement.executeQuery("SELECT * FROM " + table);
   ResultSetMetaData getTableDataResultSetMetaData = getTableDataResultSet.getMetaData();
   
   while(getTableDataResultSet.next())
   {
    Vector temp = new Vector();    
   
    for(int cptCols = 1; cptCols <= getTableDataResultSetMetaData.getColumnCount(); cptCols++)
    {
     temp.add(getTableDataResultSet.getString(cptC
 
ols));
    }
   
    resultat.add(temp);
   }
   
   getTableDataResultSet.close();
   getTableDataStatement.close();
  }
  catch (SQLException exception)
  {
  System.out.print("exception :" + exception + "\n" );
  }
   
  return resultat;
 }
 
 /*
 *
 *
 *
 */
 
 public Vector getListOfTables()
 {
  Vector resultat = new Vector();
   
  try  
  {
            Statement getListOfTablesStatement = connection.createStatement();
   ResultSet getListOfTablesResultSet = getListOfTablesStatement.executeQuery("SHOW TABLES FROM " + base);
     
                 while (getListOfTablesResultSet.next())  
   {
    resultat.add(getListOfTablesResultSet.getString(1));
   }
   
                 getListOfTablesResultSet.close();
                 getListOfTablesStatement.close();
            }
            catch (SQLException exception) {
             System.out.print("exception :" + exception + "\n" );
  }
   
  return resultat;
 }
   
 /**
  * Renvoie les noms des champs d'une table
  *
  * @return Le vecteur contenant les noms des champs.
  *
  * @param _database la base de données d'où provient la table
  * @param _table la table dont le nom de champs sont à extraire.
  **/
 public Vector getColumnsName( String _table)
 {
  String table = new String(_table);
  Vector resultat = new Vector();
   
  try
  {
   Statement getColumnsNameStatement = connection.createStatement();
   ResultSet getColumnsNameResultSet = getColumnsNameStatement.executeQuery("SELECT * FROM " +  table + " LIMIT 1" );
   ResultSetMetaData getColumnsNameResultSetMetaData = getColumnsNameResultSet.getMetaData();
       
   for(int cptCols = 1; cptCols <= getColumnsNameResultSetMetaData.getColumnCount(); cptCols++)
   {
    resultat.add(getColumnsNameResultSetMetaData.g
 
etColumnName(cptCols));
   }
   
   getColumnsNameResultSet.close();
   getColumnsNameStatement.close();
  }
  catch (SQLException exception)
  {
  System.out.print("exception :" + exception + "\n" );
  }
   
  return resultat;
 }
   
 /**
  * Retourne l'identifiant de la connexion vers le serveur <i>MySQL</i>.
  **/
 public Connection getConnection()
 {
  return connection;
 }
 
 
 
 /**
  * Retourne le nom du serveur.
  **/
 public String getHost()
 {
  return host;
 }
  /**
  * Retourne le nom du serveur.
  **/
 public String getDataBaseName()
 {
  return base;
 }
 
 
 /**
  * Retourne le port de la connecion vers le serveur.
  **/
 public String getPort()
 {
  return port;
 }
 
 
 
 /**
  * Retourne le nom de l'utilisateur connecté sur le serveur.
  **/
 public String getUser()
 {
  return user;
 }
 
 
}

 

[edtdd]--Message édité par veryfree--[/edtdd]

Reply

Marsh Posté le 04-02-2002 à 21:56:56    

c commenté en +
et puis si t a des questions...

Reply

Marsh Posté le 04-02-2002 à 22:39:53    

veryfree a écrit a écrit :

c commenté en +
et puis si t a des questions...  




 
veryfree powaaa  :sol:


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 04-02-2002 à 22:57:10    

Trop compliqué ton script VeryFree !  :ouch:  
 
Voilà un truc bcp plus simple pour appréhender le pb :
 
import java.sql.*;
 
public class Test
{
 public static void main(String []args)
 {  
        try  
  {
   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" );
  }  
 
  catch(java.lang.ClassNotFoundException e)  
  {
              System.err.print("ClassNotFoundException: " );
              System.err.println(e.getMessage());
         }
 
   try  
  {
   Connection con=DriverManager.getConnection("jdbc:odbc:japon" );
 
   Statement stmt=con.createStatement();
 
   ResultSet rs=stmt.executeQuery("SELECT * FROM manga;" );  
   
   while(rs.next())
   {
    String Titre=rs.getString("titre" );
    String Numero=rs.getString("numero" );
    String Auteur=rs.getString("auteur" );
    String Genre=rs.getString("genre" );
    String Note=rs.getString("note" );
   
    System.out.println(Titre);
    System.out.println(Numero);
    System.out.println(Auteur);
    System.out.println(Genre);
    System.out.println(Note);
 
   }
 
   con.close();
          }  
  catch(SQLException ex)  
  {
               System.err.println("SQLException: " + ex.getMessage());
         }  
 }
}
 
Voilà un script pour récupérer les infos d'une petite table access (sur des mangas avec le titre, le nom de l'auteur, etc...)
 
Jpense que pour débuter et se faire une idée sur l'utilisation du package java.sql un ptit exemple rapide vaut mieux qu'un bon script rigoureux :D  
 
Sinon tu es sur que c'est utile d'utiliser des vecteurs (bouhou po envie de me casser le cul à ce point...), moi ki pensait m'en tirer avec des tableaux... ms bon c vrai ke mes bdd de projets ne sont pas bien grosses!
 
Heu sinon si tu veux me donner un exemple d'utilisation de ces scripts avec un affichage du résultat des requêtes dans un JTable (swing) TU SERAS VRAIMENT LE BIENVENUE !!!

Reply

Marsh Posté le 06-02-2002 à 07:48:47    

merci a tous, ca marche ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed