Bonjour,

J'essaye de me connecter a ma BDD Oracle Express Edition 10g (en local) mais j'ai pas mal d'erreurs :

DRIVER OK !
java.sql.SQLException: Exception d'E/S: Got minus one from a read call
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:256)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:388)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:453)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:753)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at Connect.main(Connect.java:20)

Je pense que c'est a cause de la chaine de connexion... J'ai testé la requête SQL sur Oracle et elle fonctionne.

Mon programme, il permet juste d'afficher le nom et l'ID des classes dans un collège :

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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import java.sql.*;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement; // exécute les requêtes SQL et retourne les résultats
import oracle.jdbc.driver.*;
 
public class Connect {
 
	public static void main(String[] args) {
 
		try {
			Class.forName("oracle.jdbc.driver.OracleDriver");
			System.out.println("DRIVER OK ! ");
 
			String url = "jdbc:oracle:thin:@//127.0.0.1:8080/XE"; 
			String user = "HR";
			String passwd = "hr";
 
				Connection conn = DriverManager.getConnection(url, user, passwd);
 
			//Création d'un objet Statement
			Statement state = conn.createStatement();
 
			//L'objet ResultSet contient le résultat de la requête SQL
			ResultSet result = state.executeQuery("SELECT * FROM CLASSE");
 
			//On récupère les MetaData
			ResultSetMetaData resultMeta = result.getMetaData();			
			System.out.println("\n**********************************");
 
			//On affiche le nom des colonnes
			for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
				System.out.print("\t" + resultMeta.getColumnName(i).toUpperCase() + "\t *");
 
			System.out.println("\n**********************************");
 
			while(result.next()){			
				for(int i = 1; i <=  resultMeta.getColumnCount(); i++)
					System.out.print("\t" + result.getObject(i).toString() + "\t |");
 
				System.out.println("\n---------------------------------");
 
			}
 
 
                        result.close();
                        state.close();
 
 
		} catch (Exception e) {
			e.printStackTrace();
		}		
	}
}
Merci!