Java erreur compilation

Fermé
ja - 15 janv. 2006 à 02:11
 Utilisateur anonyme - 18 janv. 2006 à 14:03
bonjour,
j'essaye d'écrire une aplication en java pour interroger une base mysql et lorsque je compile, j'obtiens les erreurs suivantes :

$javac test.java
test.java:33: cannot resolve symbol
symbol : variable conn
location: class test
stat = conn.createStatement();
^
test.java:44: cannot resolve symbol
symbol : variable conn
location: class test
conn.close();
^
2 errors

et j'arrive pas a voir d'où viens les ereurs.
pour info j'utilise j2sdk1.4.2_09
Voici mon code source :

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;
class test
{
public static void main (String[] arguments)
{
try
{
//tenter de récupérer le driver Mysql
Class.forName("com.mysql.jdbc.Driver").newInstance();
System.out.println("Chargement du pilote Mysql réussi");
}
catch(Exception e) {
System.err.print("Erreur de chargement du pilote : ");
System.err.println(e.getMessage());
}
try
{
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test","root","");
}
catch (SQLException ex) {
System.out.println("SQLException: " + ex.getMessage());
System.out.println("SQLState: " + ex.getSQLState());
System.out.println("VendorError: " + ex.getErrorCode());
}

Statement stat = null;
ResultSet result = null;

stat = conn.createStatement();
result = stat.executeQuery("SELECT * FROM essai");
try {
while (result.next())
{
System.out.println("#"+result.getInt(2)+"\n");
System.out.println("Libellé :"+result.getString(2)+"\n");
}
} catch (SQLException ex) {}
result.close();
stat.close();
conn.close();
}
}

            
                
A voir également:

1 réponse

Utilisateur anonyme
18 janv. 2006 à 14:03
Salut!


C'est parceque ta Connection n'est pas visible. Cela est dû au fait que tu la déclares dans un try-catch. Déclare là en-dehors du try-catch.

A ta place, je placerai tout le code dans une seul try et je gérerais l'exception en fonction de son type (voir ci-dessous).

PS: par convention, en Java, le nom des classes commence par une majuscule ;-)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.ResultSet;

class Test {
	public static void main(String[] arguments) {
		Connection conn = null;
		Statement stat = null;
		ResultSet result = null;

		try {
			//tenter de récupérer le driver Mysql 
			Class.forName("com.mysql.jdbc.Driver").newInstance();
			System.out.println("Chargement du pilote Mysql réussi");
			conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1/test", "root", "");
			stat = conn.createStatement();
			result = stat.executeQuery("SELECT * FROM essai");

			while (result.next()) {
				System.out.println("#" + result.getInt(2) + "\n");
				System.out.println("Libellé :" + result.getString(2) + "\n");
			}

			result.close();
			stat.close();
			conn.close();
		} catch (SQLException se) {
			System.out.println("SQLException: " + se.getMessage());
			System.out.println("SQLState: " + se.getSQLState());
			System.out.println("VendorError: " + se.getErrorCode());
		} catch (InstantiationException ie) {
			System.err.print("Erreur de chargement du pilote : ");
			System.err.println(ie.getMessage());
		} catch (Exception e) {
			//A gérer
			e.printStackTrace();
		}
	}
}


;-)
HackTrack
0