java - 线程中出现异常 "AWT-EventQueue-0"java.lang.ClassCastException

标签 java sql-server jdbc

我正在尝试将我的 java 应用程序与 sql server 2012 连接,但出现以下错误:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException:  com.microsoft.sqlserver.jdbc.SQLServerConnection cannot be cast to com.mysql.jdbc.Connection

有人可以帮我吗?

非常感谢。

连接代码:

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


 public class CriaConexao {

 public static Connection getConexao()throws SQLException{
    try{

        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
       String dbURL = "jdbc:sqlserver://BRGDB:1433;database=DB_SQL;IntegratedSecurity=true";
            Connection conexao = DriverManager.getConnection(dbURL);
            return conexao;

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

}  

}

错误:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: com.microsoft.sqlserver.jdbc.SQLServerConnection cannot be cast to com.mysql.jdbc.Connection
    at sensores.forms.jTLoginConsulta.<init>(jTLoginConsulta.java:71)
    at sensores.forms.jTLoginConsulta$4.run(jTLoginConsulta.java:448)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:744)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:714)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

jTLoginConsulta 导入:

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import java.awt.*;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.swing.*;
import org.openide.util.Exceptions;
import sensores.basedados.CriaConexao;
import sensores.forms.jTMainMenu;
import com.mysql.jdbc.PreparedStatement;
import java.awt.Color;
import java.awt.Toolkit;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.JOptionPane;
import java.awt.*;
import java.sql.*;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.StringTokenizer;
import java.util.TimerTask;
import javax.swing.*;
import sensores.basedados.CriaConexao;
import sensores.logica.Logins;
import java.util.Timer;
import java.util.TimerTask;
import java.util.*;
import java.util.List;
import sensores.logica.Alarmes;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
import javax.mail.Address;
import javax.mail.Message.RecipientType;

第71行发生错误:

68    public jTLoginConsulta() throws SQLException {
69          initComponents();
70        setIcon();
71      conexao=(Connection) CriaConexao.getConexao();
72    
73       }

最佳答案

检查此 Connection 对象的导入

Connection conexao = DriverManager.getConnection(dbURL);

它应该是java.sql.Connection。看来你导入错误了 com.mysql.jdbc.Connection

编辑

根据编辑的问题:

 conexao=(Connection) CriaConexao.getConexao();

CriaConexo 返回 com.microsoft.sqlserver.jdbc.SQLServerConnection,而您将其错误地转换为 com.mysql.jdbc.Connection。只需更正对 java.sql.Connection 的导入并删除强制转换即可。

希望有帮助。

关于java - 线程中出现异常 "AWT-EventQueue-0"java.lang.ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23696775/

相关文章:

java - 将 Proguard 与可运行的 JAR 文件结合使用

sql-server - SQL Server 在使用 THROW 时回滚我的事务

sql - Oracle JDBC 忽略 CONCUR_UPDATABLE 结果集中的 SET CONSTRAINTS ALL DEFERRED

jdbc - 如何访问 clojure jdbc 插入生成的 key

java - Android:如何在android中使用数学表达式

java - JdbcBatchItemWriter 如何决定批量大小?

java - 安装了两个版本的 Java 时出现错误 Python tabula

sql - 数据库对象中的封装查询返回的行数太少

SQL 选择如果计数

java - UCanAccess错误: user lacks privilege or object not found: WHERE