Bonjour,
J'essaie d'accéder une DB qui est en local depuis un simple programme Java via JDBC. Je peux accéder à ma DB via une console MySQL, ca marche très bien, je peux faire des requêtes etc...
Je run mon programme via Eclipse. Sous windows, il y a aucun problème, j'arrive à faire une requête depuis Java et obtenir un resultSet.
Mais normalement je travaille sous linux. Quand j'ai écrit ce bout de code java, j'avais Ubuntu 6.10 (Edgy), ca marchait très bien, et depuis l'autre jour, j'ai upgradé à la version 7.04 (Feisty). Et depuis, ca ne marche plus. A noter aussi que j'utilise la dernière version du connecteur MySQL/JDBC (version 5.05).
Il me met une exception bizarre. Voici l'output de l'erreur :
Code :
- java.sql.SQLException: Error during query: Unexpected Exception: java.io.CharConversionException message given: null
- Nested Stack Trace:
- ** BEGIN NESTED EXCEPTION **
- java.io.CharConversionException
- STACKTRACE:
- java.io.CharConversionException
- at gnu.gcj.convert.Input_iconv.read(libgcj.so.70)
- at java.lang.String.init(libgcj.so.70)
- at java.lang.String.<init>(libgcj.so.70)
- at com.mysql.jdbc.SingleByteCharsetConverter.<init>(SingleByteCharsetConverter.java:153)
- at com.mysql.jdbc.SingleByteCharsetConverter.initCharset(SingleByteCharsetConverter.java:108)
- at com.mysql.jdbc.SingleByteCharsetConverter.getInstance(SingleByteCharsetConverter.java:86)
- at com.mysql.jdbc.Connection.getCharsetConverter(Connection.java:3471)
- at com.mysql.jdbc.StringUtils.getBytes(StringUtils.java:609)
- at com.mysql.jdbc.Buffer.writeStringNoNull(Buffer.java:655)
- at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1678)
- at com.mysql.jdbc.Connection.execSQL(Connection.java:3243)
- at com.mysql.jdbc.Connection.configureClientCharacterSet(Connection.java:2509)
- at com.mysql.jdbc.Connection.initializePropsFromServer(Connection.java:4096)
- at com.mysql.jdbc.Connection.createNewIO(Connection.java:2756)
- at com.mysql.jdbc.Connection.<init>(Connection.java:1553)
- at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
- at java.sql.DriverManager.getConnection(libgcj.so.70)
- at java.sql.DriverManager.getConnection(libgcj.so.70)
- at QueryDB.main(QueryDB.java:23)
- ** END NESTED EXCEPTION **
|
Et voici le bout de code java, responsable d'ouvrir la connexion :
Code :
- public class QueryDB {
- public static void main(String[] args) {
- try {
- Class.forName("com.mysql.jdbc.Driver" );
- String sourceURL = "jdbc:mysql://localhost:3306/newBgee?user=root";
- Connection databaseConnection = DriverManager.getConnection(sourceURL);
- Statement statement = databaseConnection.createStatement();
- ResultSet gene = statement.executeQuery("SELECT * FROM gene" );
- while(gene.next())
- System.out.println(gene.getString("geneName" ));
- }
- catch(ClassNotFoundException cnfe) {
- System.err.println(cnfe);
- }
- catch(SQLException sqle) {
- System.err.println(sqle);
- }
- }
- }
|
J'ai pourtant réessayé de retaper l'URL, pensant que vu que c'est une CharConversionException, un caractère invisible aurait pu faire c**** mais ca n'a rien changé.
Quelqu'un pourrait-il m'aider svp ?
Merci!