【发布时间】:2011-06-12 04:35:36
【问题描述】:
我正在尽我所能让 JDBC 工作,现在唯一让我难过的是这个异常,我不知道:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '????????????????' at line 1
com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1049)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
com.mysql.jdbc.ConnectionImpl.configureClientCharacterSet(ConnectionImpl.java:1890)
com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3523)
com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2386)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:374)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
java.sql.DriverManager.getConnection(libgcj.so.10)
java.sql.DriverManager.getConnection(libgcj.so.10)
我正在使用它来连接...
Class.forName("com.mysql.jdbc.Driver");
DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "username", "password");
非常感谢!
【问题讨论】:
-
似乎连接已打开,但查询语法有问题。问号的数量表明它可能是在列表中动态创建的(类似于 (?,?,?) 中的东西)格式错误。请问可以发帖吗?
-
请提供更多细节。似乎您有某种编码错误。您的 SQL 和数据库的默认编码是什么?
-
@Steven:堆栈跟踪确认此异常是在调用
getConnection()时引发的,而不是在executeQuery()左右。 -
不幸的是我在这方面有点新手......但我只想说我没有使用查询,我在 DriverManager.getConnection(); 之后得到了这个异常;
-
FWIW(它可能不值多少钱),过去我在 GCJ 上遇到过很多麻烦(我假设您正在使用它,因为您的堆栈转储顶部指示 libgcj) ,以至于最好使用专有软件而不是沉浸在我的理想主义的光芒中:-) 不能肯定地说这是一个 GCJ 问题(因为我的问题是很久以前的)但第一件事 我会用“真正的”JRE 来测试它。
标签: java mysql jdbc mysql-error-1064 connector