[jdbc][oracle] j'arrive pas à utilser resultats requette!
Bonjour !
J'ai des soucis depuis hier avec ce bout de code!
Je l'ai mis avec le code d'erreur qu'il m'envoie. Une exception de nullpointer s'eleve et je ne sais pas pourkoi! :( Comme vous pouvez le remarquer toutes les variables sont initialisée avant les utilisation!
Je vous serai reconnaissant pour votre aide!
Code:
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172
|
package controle_facturation;
import java.io.*;
import java.sql.*;
import java.util.*;
import oracle.jdbc.driver.OracleDriver;
class java_oracle {
Connection con;
ResultSet results;
ResultSetMetaData rsmd;
//----------------------------
public java_oracle() {
try {
results = null;
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
}
catch (Exception e) {
System.out.println("Erreur lors du chargement du driver:"+ e.getMessage());
}
}
//------------------------------------------------------
public boolean ouvre(String piloteODBC) {
boolean ok = false;
try {
con = DriverManager.getConnection(piloteODBC,"user1","password1");
ok = true;
}
catch (SQLException e) {
System.out.println("echec d'ouverture:" + e.getMessage());
ok = false;
}
return (ok);
}
//-----------------
public boolean ferme() {
boolean ok = false;
try {
con.close();
ok = true;
}
catch (SQLException e) {
System.out.println("echec lors de la fermeture:" + e.getMessage());
ok = false;
}
return ok;
}
//------------------------------------------------
public void executeRequete(String requete) {
try {
Statement stmt = con.createStatement();
results = stmt.executeQuery(requete);
}
catch (SQLException e) {
System.out.println("Erreur requête : " + e.getMessage());
}
}
public ResultSet getResult() {
return results;
}
public void recupDonnees() {
try {
rsmd = results.getMetaData();
}
catch (SQLException e) {
System.out.println("Erreur données:" + e.getMessage());
}
}
public int getNbColonne() {
int nbCols = 0;
try {
nbCols = rsmd.getColumnCount();
}
catch (SQLException e) {
System.out.println("Erreur nombre de colonnes:" + e.getMessage());
}
return nbCols;
}
public boolean ligneSuivante() {
boolean encore = false;
try {
encore = results.next();
}
catch (SQLException e) {
}
return encore;
}
public String getValeur(int i) {
String valeur = "";
try {
valeur = results.getString(i);
}
catch (SQLException e) {
}
return valeur;
}
public ResultSetMetaData getDonnees() {
return rsmd;
}
public Vector getNomColonne() {
Vector vec = new Vector();
for (int i = 1; i <= this.getNbColonne(); i++) {
try {
vec.add(rsmd.getColumnName(i));
}
catch (SQLException e) {
}
}
return vec;
}
//extrait les données de la requête dans un fichier csv
public void write_csv(String nomFichier) {
Vector vec = getNomColonne();
try {
BufferedWriter out = new BufferedWriter(new FileWriter(nomFichier));
for (int i = 1; i <= this.getNbColonne(); i++) {
out.write( (String) vec.elementAt(i - 1));
if (i != this.getNbColonne()) {
out.write(";");
}
else {
out.newLine();
}
}
boolean encore = this.ligneSuivante();
while (encore) {
for (int i = 1; i <= this.getNbColonne(); i++) {
out.write(this.getValeur(i));
if (i != this.getNbColonne()) {
out.write(";");
}
else {
out.newLine();
}
}
encore = this.ligneSuivante();
}
out.close();
}
catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String arg[]){
java_oracle test=new java_oracle();
test.ouvre("jdbc:oracle:thin:@10.02.0.56:1521:base_siege");
test.executeRequete("select groupe1_id from table_groupe");
test.write_csv("c:\test.txt");
}
} |
Voila le message d'erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
java.lang.NullPointerException
at controle_facturation.java_oracle.getNbColonne(java_oracle.java:81)
at controle_facturation.java_oracle.getNomColonne(java_oracle.java:116)
at controle_facturation.java_oracle.write_csv(java_oracle.java:128)
at controle_facturation.java_oracle.main(java_oracle.java:171)
Exception in thread "main" |
[/code]