java - 连接数据库时出现 SQL 异常

标签 java mysql

此代码在 try 语句后的第一行中引发错误!我的库文件中有 mysql 驱动程序,没有任何问题!我正在使用netbeans 8.0版本!在另一个stackoverflow问题中我看到要更改tomcat版本!我在这段代码中没有看到可能的类转换异常!

package jdbc;
import java.sql.*;
import com.mysql.jdbc.Driver;
public class Jdbc {
    public static void main(String[] args) {
        try
        {
            Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/Dust","root","32577488");
            Statement stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery("CREATE TABLE Persons\n" +
                "(\n" +
                "PersonID int,\n" +
                "LastName varchar(255),\n" +
                "FirstName varchar(255),\n" +
                "Address varchar(255),\n" +
                "City varchar(255)\n" +
                ");");
            System.out.println("Hello world");
            while(rs.next())  
            System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
            con.close();  

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    } 
}

日志:

java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
    at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1062)
    at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3556)
    at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2513)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at jdbc.Jdbc.main(Jdbc.java:9)
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
    at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1007)
    ... 15 more
BUILD SUCCESSFUL (total time: 1 second)

最佳答案

尝试executeUpdate而不是executeQuery。它应该返回0。请参阅the JavaDoc for more details .

executeQuery 通常用于 SQL 选择语句,如 JavaDoc 中所示。

关于java - 连接数据库时出现 SQL 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50546118/

相关文章:

java - JSpinner.DateEditor 5分钟跳转

java - MySQL 拒绝以 UTF-8 格式保存

java - 多个初始管理员或初始管理组

php - 为什么我的 PHP if 语句不能正常工作?

php - 当显示记录时,它会在页面刷新时重复吗?

mysql - 为已经在使用中的主键创建外键

java - 验证 vaadin 组合框自定义输入(仅限整数)

java - 如何在嵌入式 Undertow 服务器上启用目录列表和资源服务?

mysql - 如何从 select() 交叉引用表

php - 使用多个列表菜单和复选框 php