如何解决:“没有为jdbc找到合适的驱动程序:mysql:// localhost / dbname”使用池时出错? [重复]

    这个问题在这里已有答案:                           臭名昭着的java.sql.SQLException:找不到合适的驱动程序                                      12个答案                                    
已邀请:
尝试将驱动程序jar放在服务器lib文件夹中。 ($ CATALINA_HOME / lib中) 我相信甚至在实例化应用程序之前就需要设置连接池。 (至少这是它在Jboss中的工作方式)     
你得到这个错误的原因:
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/dbname
是因为你忘了用java应用程序注册你的mysql jdbc驱动程序。 这就是你写的:
Connection con = null;
try {
    con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
    throw new RuntimeException(e);
}
应该是这样的:
Connection con = null;
try {
    //registering the jdbc driver here, your string to use 
    //here depends on what driver you are using.
    Class.forName("something.jdbc.driver.YourFubarDriver");   
    con = DriverManager.getConnection("jdbc:apache:commons:dbcp:test");
} catch (SQLException e) {
    throw new RuntimeException(e);
}
您必须阅读特定mysql jdbc驱动程序的手册,以找到放在Class.forName(“...”)参数中的确切字符串。 JDBC v.4不需要Class.forName 从Java 6开始,如果您使用最新的(JDBC v.4)驱动程序,则不再需要
Class.forName("something.jdbc.driver.YourFubarDriver")
。有关详细信息,请阅读:http://onjava.com/pub/a/onjava/2006/08/02/jjdbc-4-enhancements-in-java-se-6.html     
使用Tomcat7和mysql-connector-java-5.1.26我遇到了同样的问题,我把它放在我的$ CATALINA_HOME / lib和WEB-INF / lib中,以防万一。但是在得到连接之前我使用这两个语句中的任何一个之前它都找不到它:
DriverManager.registerDriver(new com.mysql.jdbc.Driver ());
要么
Class.forName("com.mysql.jdbc.Driver");
然后我从$ CATALINA_HOME / lib中删除mysql-connector-java-5.1.26,连接仍然有效。     
当运行tomcat out of eclipse时它不会选择在ѭ6中设置的lib,有两种方法可以修复它。在eclipse服务器视图中双击Tomcat服务器,它将打开tomcat插件配置,然后: 单击“Open Launch Config”>“Classpath”选项卡设置mysql连接器/ j jar位置。 要么 服务器位置>选择选项,显示“使用Tomcat安装(控制Tomcat安装)”     
我在$ CATALINA_HOME / lib和WEB-INF / lib中都有mysql jdbc库,但是我还是遇到了这个错误。我需要Class.forName(“com.mysql.jdbc.Driver”);使它工作。     
我遇到了同样的问题,你需要做的就是为tomcat定义classpath环境变量,你可以通过添加一个文件来实现,在我的例子中
C:apache-tomcat-7.0.30binsetenv.bat
,包含:
set "CLASSPATH=%CLASSPATH%;%CATALINA_HOME%libmysql-connector-java-5.1.14-bin.jar"
那么代码,在我的情况下:
Class.forName("com.mysql.jdbc.Driver").newInstance(); 
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "root", "");
工作良好。     
兄弟,你也可以编写如下代码:
import java.sql.*;
import java.io.*;
public class InsertDatabase {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    try
    {  
        Class.forName("com.mysql.jdbc.Driver");  
        Connection con=DriverManager.getConnection(  
        "jdbc:mysql://localhost:3306/Maulik","root","root");  

        Statement stmt=con.createStatement();  
        ResultSet rs=stmt.executeQuery("select * from Employee");  
        while(rs.next())  
        System.out.println(rs.getInt(1)+"  "+rs.getString(2)+"  "+rs.getString(3));  
        con.close();
    }

    catch(Exception e)
    {
        System.out.println(e);
    }

        }  

}
    
我正在使用Java 7在Eclipse中运行Tomcat 7,并使用jdbc驱动程序来运行MSSQL sqljdbc4.jar。 当在tomcat之外运行代码时,从一个独立的Java应用程序,这工作得很好:
        connection = DriverManager.getConnection(conString, user, pw);
但是,当我尝试在Tomcat 7中运行相同的代码时,我发现我只能通过首先注册驱动程序来实现它,将上面的内容更改为:
        DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
        connection = DriverManager.getConnection(conString, user, pw);
    
从maven添加工件。
 <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
 </dependency>
    
使用:
try {

    Class.forName("com.mysql.jdbc.Driver").newInstance();
    System.out.println("Registro exitoso");

} catch (Exception e) {

    System.out.println(e.toString());

}

DriverManager.getConnection(..
    
如果您使用的是netbeans,则必须在项目的库列表中,在项目的属性中添加Mysql JDBC驱动程序     
前一段时间我也有同样的问题,但我解决了这个问题。 此例外可能有不同的原因。 其中一个可能是你添加到你的lib文件夹的jar可能是旧的。 尝试找出最新的mysql-connector-jar版本并将其添加到类路径中。 它可以解决您的问题。我这样解决了。     
大部分时间都是因为两个mysql-connector-java-3.0.14-production-bin.jar文件而发生的。 一个在tomcat的lib文件夹中,另一个在项目的类路径中。 只是尝试从lib文件夹中删除mysql-connector-java-3.0.14-production-bin.jar。 这样它对我有用。     
根据我的观察,发生此异常可能有两个原因: (1)您的驱动程序名称拼写不正确。 (2)驱动程序未与Java项目正确关联    Eclipse中要遵循的步骤:    (1)创建一个新的Java项目。    (2)复制连接器Jar文件    (3)右键单击Java项目并将其粘贴到那里。    (4)右键单击Java项目 - >属性 - > Java构建路径 - >库 - >添加Jar - >选择ur项目(从下拉列表中选择jar文件),然后单击确定。     
解决方案很简单。 运行(不编译)程序时,请确保类路径可以访问数据库连接器,例如:
java -classpath .;c:pathtomysql-connector-java-5.1.39.jar YourMainClass 
此外,如果您使用的是旧版本的Java(JDBC 4.0之前版本),那么在执行此操作之前,此行是必需的:
Class.forName("your.jdbc.driver.TheDriver"); // this line is not needed for modern Java
    
使用Ubuntu(Xubuntu 12.04.1)进行开发时,我'HAD'要执行以下操作: 运用 Eclipse Juno(已下载,未通过软件中心安装), Tomcat 7(在自定义用户目录中下载)也在Eclipse中添加为服务器, 带有3.0 Servlet的动态Web项目, 本地主机上的MySQL服务器使用用户和密码进行配置和测试(确保测试) MySQL连接器驱动程序5.1.24 jar, 我'HAD',我重复'HAD',给我们Class.Load(“com.mysql.jdbc.Driver”)声明,同时添加连接器driver.jar,使其在Web项目lib文件夹中工作在这种情况下。 重要!!:将driver.jar复制到lib之后,请确保在通过Tomcat运行servlet之前在Eclipse中刷新项目。 我尝试使用和不使用ClassLoad通过Build Path添加连接器驱动程序jar文件,但它不起作用! 希望这可以帮助任何人在这种特定情况下开始开发:Java社区提供了很多文档,但是有很多变量很难涵盖所有这些变量,并且这对新人来说非常困难。 我想如果有人能解释为什么这里需要Class.Load(在这种情况下),这将是有益的。 请享用     
由于没有人给出这个答案,我还想补充一点,你可以将jdbc驱动文件(在我的情况下为
mysql-connector-java-5.1.27-bin.jar
)添加到服务器的lib文件夹(在我的例子中是Tomcat)。重启服务器,它应该工作。     
将mysql-connector-java-5.0.8-bin.jar放在$ CATALINA_HOME / lib中 检查连接URL中的拼写错误,例如 “jdbc:mysql:// localhost:3306 / report”('report'这里是db名称) 确保使用机器名称(例如:localhost而不是ip address(127.0.0.1))     
将驱动程序类添加到bootstrapclasspath。问题出在java.sql.DriverManager中,除了bootstrap ClassLoader之外,它没有看到由ClassLoader加载的驱动程序。     
从其他stackoverflow线程: “第二。确保你在JMeter的类路径中有MySQL JDBC驱动程序又名Connector / J.如果你没有 - 下载它,解压缩并将mysql-connector-java-x.xx.xx-bin.jar删除到JMeter的/ lib文件夹.JMeter重新启动将需要选择库“ 请确保将.jar文件直接添加到lib文件夹中。     
你可以把jar放在jboss运行时的路径上,如下所示: C:用户用户工作空间 jboss-as-web-7.0.0.Final 独立部署 MYapplicationEAR.ear test.war WEB-INF lib中 ca marche 100%     

要回复问题请先登录注册