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

时间:2014-01-22 12:06:10

标签: mysql servlets jdbc

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”

任何人都可以建议我删除代码错误的方法。我不知道。

3 个答案:

答案 0 :(得分:7)

删除import com.mysql.jdbc.* 并使用import java.sql.Connection。我觉得没关系。

答案 1 :(得分: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
    }

答案 2 :(得分:-1)

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

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

希望它有所帮助。