Rechercher : dans
Par :

Connexion jdbc

Dernière réponse le 4 déc 2008 à 00:20:03 wiam_, le 2 déc 2008 à 21:13:15 
 Signaler ce message aux modérateurs

Bonsoir tout le monde ,
pour tester ma connexion jdbc ,sous oracle j'ai creer une base de donne de test tout marche bien :
CREATE TABLE base (
NumIndividu integer NOT NULL ,
NomIndividu integer ,
PRIMARY KEY(NumIndividu));



insert into base values ('3','3');

insert into base values ('4','5');
select * from base ;


il affiche ca :

CREATE TABLE succeeded.
1 rows inserted
1 rows inserted
NUMINDIVIDU NOMINDIVIDU
---------------------- ----------------------
3 3
4 5

2 rows selected


et pour se connecter a partir un programme java j'ai creer la classe suivante :

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class basedetest {
Connection co ;
ResultSet res;
Statement st ;

public void openConnection(String url) {

try{
Class.forName("oracle.jdbc.driver.OracleDriver");
co = DriverManager.getConnection(url);
}
catch (ClassNotFoundException e){
System.out.println("impossible de charger le driver");
System.exit(1);
}
catch (SQLException s){
System.out.println("impossible d'etablir la connexion");
System.exit(2);
}
}
public void execRequete(String requete){

try{

st = co.createStatement() ;
res = st.executeQuery(requete) ;

while (res.next()){
System.out.println("ok");
for(int i=0;i<2;i++){
System.out.println(res.getString(i)+"\t");
}
}
}
catch(SQLException s){
System.out.println("requete impossible") ;
}
}

public void closeConnection(){
try{
res.close();
st.close() ;
co.close();
System.out.println( "connexion fermé");

}catch(SQLException e){
System.out.println("impossible de fermer la connexion");
System.exit(1);
}
}
}

et voici le main :

import java.sql.SQLException;

public class app {

/**
* @param args
*/
public static void main(String[] args) throws ClassNotFoundException,SQLException{
String url="jdbc:oracle:thin:login/pass@localhost:1521:xe" ;
String req = "select * from test";
basedetest c = new basedetest();
c.openConnection(url);
c.execRequete(req);
c.closeConnection();
}

}


mais à l'execution de la requete i m'affiche toujours requete impossible sachant que le login et le mot de passe fonctionnent bien .MERCI à vous je serais tres reconnaissante si vous pouuvez m'aider

Configuration: Windows Vista
Firefox 3.0.4

Meilleures réponses pour « connexion jdbc » dans :
Connexion à la base de données avec JDBC Voir Connexion à la base de données L'API (Application Programming Interface) JDBC, c'est-à-dire la bibliothèque de classes JDBC, se charge de trois étapes indispensables à la connexion à une base de données : la création d'une connexion à la...
[ADSL] Tester la vitesse de connexion internet (test de débit) VoirLes vitesses de téléchargement (théoriques) : Connexions Pourquoi cette différence ? J'ai un ADSL xxxx, mais quand je télécharge ça va moins vite que ce que ça devrait, pourquoi ? L'upload est trop lent ! Liens Tests de débit...
Réseau local et partage de connexion Internet VoirSommaire I. Configurer un réseau entre 2 PC seulement 1. Avec Windows Vista 2. Avec Windows XP 3. Avec Windows 98 (Me?) II. Avec plusieurs ordinateurs III. Partage de connexion internet. a. Sous windows XP et Vista b. Sous Windows...
IPhone: configuration de la connexion Internet VoirConfiguration de la connexion d'un iPhone à internet selon les opérateurs français Orange Bouygues Telecom Bouygues - Contrat Pro Data Illimité (2.5G/Edge et HSPDA) SFR Si vous avez un abonnement WAP Ouvrez votre iPhone et cliquez sur...
Télécharger Outlook Connector VoirMicrosoft Outlook Connector permet d'utiliser Outlook 2003 ou Outlook 2007 afin d'accéder à vos comptes de messagerie Windows Live Hotmail ou Office Live Mail et de les gérer gratuitement, notamment les contacts. Selon les services, la...
Java - L'API JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est un ensemble de classes permettant de développer des applications capables de se connecter à des serveurs de bases de données (SGBD). L'accès aux bases de données avec...
Introduction à JDBC VoirIntroduction à JDBC La technologie JDBC (Java DataBase Connectivity) est une API fournie avec Java (depuis sa version 1.1) permettant de se connecter à des bases de données, c'est-à-dire que JDBC constitue un ensemble de classes permettant de...
Partager une connexion Internet sous Windows XP VoirIntérêt Si vous possédez un réseau local (deux ordinateurs ou plus reliés en réseau) dont un connecté à Internet (par l'intermédiaire d'un modem, par le câble, ...) il peut être intéressant de rendre Internet accessible aux autres ordinateurs du...

1

sandul, le 2 déc 2008 à 22:04:27

Hello,

Ajoute une ligne printStackTrace dans chaque partie catch des try..catch. On s'en fout des
System.out.println("requete impossible")...

Poste par ici la sortie console du printstacktrace (au besoin, car très probablement elle sera suffisante pour que tu rectifies le tir toute seule).

++

Répondre à sandul

2

wiam_, le 2 déc 2008 à 22:30:35

Merci pour ta reponse mais je sais pa comment je doit utiliser printStackTrace , en fait j'ai jamais utilise , est ce qu'il faut creer une methode ou quoi ?

Répondre à wiam_

3

sandul, le 3 déc 2008 à 00:13:08

Euh... Est-ce que tu as jamais essayé de faire une recherche? http://www.google.fr/... ramène 1 040 000 résultats.

Un clic sur le 1er des résultats retournés ==> documentation Java 1.4. Ca date un peu, mais toujours valable. On apprend que printStackTrace() est une méthode de la classe Throwable. La classe Exception hérite de Throwable, donc elle possède aussi cette méthode.

Du coup, l'utilisation est super giga méga simple:

try {
  metodePouvantLancerUneException();
} catch (Exception ex) {
  ex.printStackTrace();
}


Voilou :-)
++

Répondre à sandul

4

wiam_, le 3 déc 2008 à 23:15:48

Merci, maintenant ca marche bien en fait il y a pas d'erraur dans le code java , il fallait juste faire un COMMIT apres la creation de la BD c tt bete mais ......

Répondre à wiam_

5

sandul, le 3 déc 2008 à 23:24:44

Mmmh? Bizarre.

CREATE TABLE base (.... <== pas de commit à effectuer. Pas sur un ordre DDL.


insert into base values ('3','3');

insert into base values ('4','5'); <== commit OK ici après des instructions DML.

Maintenant, supposons que le commit manque. Donc pas de valeurs dans la table base (mais la table existe). Aucun souci pour le code, car la boucle while(res.next()) empêchera l'exécution. Donc ???

Seule possibilité: je vois que tu as un
create table base ...

et dans le code JAva tu faisais un

select * from test

Comme "base" n'est pas la même chose que "test", on a une erreur.

++

Répondre à sandul

6

 wiam_, le 4 déc 2008 à 00:20:03

Non mais j'ai changé test apres et ca marchait pa non plus , en fait ce que j'ai compris si on fait pas le commit la base de donne n'est pa enregistré meme s'elle est crée , par contre j'ai un autre probleme sous sql developper quand je supprime une connexion qui contient deja des tables et je crée une autre ,la dieuxieme que je viens de creer contient les meme table que celle qui est supprimée , soit les deux connexions elles ont le meme ou pa . ce qui est chiant comme meme . si qql à une solution je serais tres reconnaissante.MERCI à vous

Répondre à wiam_