MySQLSyntaxErrorException
Je viens de commencer à apprendre MySQL et JDBC.
J'ai créé une table appelée testdb à l'aide de phpmyadmin. Table juste a 2 colonnes appelé en premier et en dernier. Lorsque j'essaie de connecter la base de données à partir de ma classe java, je reçois MySQLSyntaxError. Cependant, je ne pouvais pas le comprendre.
Voici ma classe:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String url = "jdbc:mysql://localhost:3306/testdb";
//Accessing driver from the JAR file.
Class.forName("com.mysql.jdbc.Driver");
//Creating a variable for the connection "con"
Connection con = DriverManager.getConnection(url,"root","password");
//Here is the query
PreparedStatement statement = con.prepareStatement("select * from name");
//Execute query
ResultSet result = statement.executeQuery();
while(result.next()) {
System.out.println(result.getString(1) + " " + result.getString(2));
}
}
}
Et ici, c'est l'exception:
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'testdb.name' doesn't exist
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1053)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4096)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4028)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2490)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2651)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2734)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2155)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2322)
at Main.main(Main.java:22)
Merci pour votre aide
Vous devez vous connecter pour publier un commentaire.
d'erreur est assez descriptif. Il n'y a pas de tableau avec le nom "nom" dans
testdb
schéma.Si vous avez créé une table
testdb
alors il devrait êtreselect * from testdb
. n'est-ce pas?Vous avez créé une table nommée testdb donc votre requête doit être
pas
select * from name
vous devriez vraiment vérifier votre stacktraces.