【问题标题】:Type mismatch: cannot convert from java.sql.Connection to com.mysql.jdbc.Connection类型不匹配:无法从 java.sql.Connection 转换为 com.mysql.jdbc.Connection
【发布时间】:2014-02-12 11:38:32
【问题描述】:
import java.io.IOException;
import java.sql.DriverManager;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.mysql.jdbc.*;

*// Here,in below 2 statement, I got 2 the same error as shown in title*

**Connection con = DriverManager.getConnection("localhost:3306", "root","simple");               
Statement stmt = con.createStatement();**
    if(stmt.execute(sql)){
    System.out.println("Sql Statement Executed.");
    }
    else
    {
        System.out.println("Sql Statement not eexecuted.");
    }
    if((unm != null) && (pwd != null)){
        RequestDispatcher rd =request.getRequestDispatcher("Home.jsp");
        rd.forward(request, response);
    }
}

}

我正在尝试将数据从 servlet 发送到 mysql 服务器,但在 servlet 中我得到了

错误:“类型不匹配:无法从 java.sql.Connection 转换为 com.mysql.jdbc.Connection”

谁能建议我为我的代码删除错误的方法。我不明白。

【问题讨论】:

    标签: mysql servlets jdbc


    【解决方案1】:

    我认为您使用了错误的连接字符串,并且驱动程序管理器不知道如何实例化连接。 documentation 有更多关于格式的信息。

    它认为代码应该是这样的

    con = DriverManager.getConnection("jdbc:mysql://localhost/test","root","simple");
    

    我认为导入存在问题,如另一个问题所述:Type mismatch: cannot convert from Connection to Connection,您需要import java.sql.Connection;

    编辑

    要修复 DriverManager 错误,您需要使用以下代码注册驱动程序(取自 mysql 文档)

        try {
            // The newInstance() call is a work around for some
            // broken Java implementations
    
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception ex) {
            // handle the error
        }
    

    【讨论】:

    • 谢谢,Augusto 的回复,是的,它已解决,但我仍然收到“无法解决 DriverManager”错误..
    • 你可能还没有注册mysql驱动。请阅读此documentation
    【解决方案2】:

    删除import com.mysql.jdbc.* 并使用import java.sql.Connection。我想会没问题的。

    【讨论】:

    • 是的,它甚至可以工作,但我想使用 mysql 作为后端工具,DriverManager 无法解决错误仍然来..
    • 匆忙,我忘了,这是javase规范中提供的连接接口,它处理DriverManger给出的对象>getConnection()...!!
    【解决方案3】:

    我正在回答一个老问题,但我遇到了同样的问题,我通过导入所有库解决了这个问题:

    import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*;
    

    希望对你有帮助。

    【讨论】:

      【解决方案4】:

      尝试导入 java.sql.Connection 和 java.sql。* 我希望它会起作用。我也遇到了这个错误,我尝试了很多方法来解决它,但我也从你在这个页面的测验中得到了它。我能够解决它。

      谢谢你们所有的救生员

      【讨论】:

      • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-16
      • 2016-03-13
      • 2014-04-16
      • 2017-12-31
      • 1970-01-01
      • 2015-11-18
      • 2014-04-07
      相关资源
      最近更新 更多