GVKun编程网logo

jdbc到MYSQL错误:找不到适用于jdbc:mysql:// localhost:3306 / test的合适驱动程序?user='root'&password =''

19

在这篇文章中,我们将带领您了解jdbc到MYSQL错误:找不到适用于jdbc:mysql://localhost:3306/test的合适驱动程序?user='root'&password=''的全貌

在这篇文章中,我们将带领您了解jdbc到MYSQL错误:找不到适用于jdbc:mysql:// localhost:3306 / test的合适驱动程序?user='root'&password =''的全貌,同时,我们还将为您介绍有关Access denied for user ''root''@''localhost'' (using password:YES) Mysql5.7、ClassNotFoundException:com.mysql.jdbc.DriverWeb应用程序的JDBC MySQL驱动程序、ClassNotFoundException:com.mysql.jdbc.Driver。Web应用程序的JDBC MySQL驱动程序、Hibernate-找不到适用于jdbc的驱动程序:mysql // *的知识,以帮助您更好地理解这个主题。

本文目录一览:

jdbc到MYSQL错误:找不到适用于jdbc:mysql:// localhost:3306 / test的合适驱动程序?user='root'&password =''

jdbc到MYSQL错误:找不到适用于jdbc:mysql:// localhost:3306 / test的合适驱动程序?user='root'&password =''

我有以下代码连接到mysql数据库:

public static void insertIntoDatabase(String code,String name,String temp,String hum,String del) {    Connection con = null;    ResultSet rs = null;    String url = "jdbc:mysql://localhost:3306/test";    String user = "root";    String password = "";    try {        Class.forName("com.mysql.jdbc.Driver");        con = DriverManager.getConnection(url, user, password);        rs = con.prepareStatement("CREATE TABLE IF NOT EXISTS AiportDetails(code VARCHAR(50) PRIMARY KEY, " +                "name VARCHAR(50), temp VARCHAR(50), hum VARCHAR(50), del VARCHAR(50)) ENGINE=InnoDB;").executeQuery();        rs = con.prepareStatement("INSERT INTO AirportDetails(code,name,temp,hum,del) VALUES("+code+","+                name+","+temp+","+hum+","+del+");").executeQuery();    } catch (SQLException ex) {        ex.printStackTrace();    } finally {        try {            if (rs != null) {                rs.close();            }            if (con != null) {                con.close();            }        } catch (SQLException ex) {            ex.printStackTrace();        }    }}

我收到以下错误:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

注意 我在网上发现了一些常见的更正:

1. The driver is not in the /WEB-INF/lib folder.2. The url is wrong.

我不认为我的代码就是这种情况。
谢谢。

答案1

小编典典

如果您在建立第一个连接之前没有加载驱动程序,则可能发生这种情况。

Class.forName("com.mysql.jdbc.Driver");

可以肯定的是,驾驶员必须进入/WEB-INF/lib,而不是进入/WEB-INF。顺便说一下,那里有一些SQL注入漏洞。看看PreparedStatement。该finally还可以提高,因为你现在拥有它时,con当永远不会被关闭rs.close()抛出异常。

Access denied for user ''root''@''localhost'' (using password:YES) Mysql5.7

Access denied for user ''root''@''localhost'' (using password:YES) Mysql5.7

解决方案:

(1) 打开MySQL目录下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件。(my.ini在C:\ProgramData\MySQL\MySQL Server 5.7\my.ini)

(2)重启MySQL服务。

(3)通过命令行进入MySQL的BIN目录,输入“mysql -u root -p”(不输入密码),回车即可进入数据库。

C:\Program Files\MySQL\MySQL Server 5.7\bin>

(4)执行“use mysql;”,使用mysql数据库。

(5)执行“update user set authentication_string=password(''xxxx'') where User=''root''; (修改root的密码)

(6)分配权限

 grant all privileges on *.* to root@localhost identified by "xxxx" ;

(7)打开MySQL目录下的my.ini文件,删除最后一行的“skip-grant-tables”,保存并关闭文件。

(8)重启MySQL服务。

(9)在命令行中输入“mysql -u root -p xxxx”,即可成功连接数据库。

ClassNotFoundException:com.mysql.jdbc.DriverWeb应用程序的JDBC MySQL驱动程序

ClassNotFoundException:com.mysql.jdbc.DriverWeb应用程序的JDBC MySQL驱动程序

因此,我有一个用于MySQL JDBC驱动程序的.jar文件,该文件位于我的库源文件夹下,并且具有以下代码:

public static Connection getConnection() throws SQLException {
        Connection conn = null;
        try{
            Class.forName("com.mysql.jdbc.Driver").newInstance();
            String url = "jdbc:mysql://50.56.81.42:3306/GUEST_BOOK";
            String user = "user";
            String password = "pass";

            conn = (Connection) DriverManager.getConnection(url,user,password);
        }catch(ClassNotFoundException e){
            e.printStackTrace();
        }catch(InstantiationException e){
            e.printStackTrace();
        }catch(IllegalAccessException e){
            e.printStackTrace();
        }
            return conn;

    }

但是,它总是给我这个错误:

INFO: Server startup in 645 ms
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at gbook.DbHelper.getConnection(DbHelper.java:14)
    at gbook.DbHelper.getGuestBook(DbHelper.java:51)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
Dec 1,2011 1:41:05 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/JDBC-MySQL] threw exception [javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection] with root cause
java.lang.ClassNotFoundException: com.mysql.jdbc.Connection
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
    at gbook.DbHelper.getGuestBook(DbHelper.java:52)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

这是我添加jar文件的方法。我创建了一个lib文件夹,并将jar放入其中,然后在eclipse中配置构建路径,并将lib文件夹中的jar添加到了项目中。

ClassNotFoundException:com.mysql.jdbc.Driver。Web应用程序的JDBC MySQL驱动程序

ClassNotFoundException:com.mysql.jdbc.Driver。Web应用程序的JDBC MySQL驱动程序

因此,我有一个用于MySQL JDBC驱动程序的.jar文件,该文件位于我的库源文件夹下,并且具有以下代码:

public static Connection getConnection() throws SQLException {        Connection conn = null;        try{            Class.forName("com.mysql.jdbc.Driver").newInstance();            String url = "jdbc:mysql://50.56.81.42:3306/GUEST_BOOK";            String user = "user";            String password = "pass";            conn = (Connection) DriverManager.getConnection(url, user, password);        }catch(ClassNotFoundException e){            e.printStackTrace();        }catch(InstantiationException e){            e.printStackTrace();        }catch(IllegalAccessException e){            e.printStackTrace();        }            return conn;    }

但是,它总是给我这个错误:

INFO: Server startup in 645 msjava.lang.ClassNotFoundException: com.mysql.jdbc.Driver    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)    at java.lang.Class.forName0(Native Method)    at java.lang.Class.forName(Class.java:169)    at gbook.DbHelper.getConnection(DbHelper.java:14)    at gbook.DbHelper.getGuestBook(DbHelper.java:51)    at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)    at java.lang.Thread.run(Thread.java:680)Dec 1, 2011 1:41:05 PM org.apache.catalina.core.StandardWrapperValve invokeSEVERE: Servlet.service() for servlet [jsp] in context with path [/JDBC-MySQL] threw exception [javax.servlet.ServletException: java.lang.NoClassDefFoundError: com/mysql/jdbc/Connection] with root causejava.lang.ClassNotFoundException: com.mysql.jdbc.Connection    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)    at gbook.DbHelper.getGuestBook(DbHelper.java:52)    at org.apache.jsp.index_jsp._jspService(index_jsp.java:83)    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

这是我添加jar文件的方法。我创建了一个lib文件夹,并将jar放入其中,然后在eclipse中配置构建路径,并将lib文件夹中的jar添加到了项目中。

答案1

小编典典

您错过了类路径中的mysql-connector-j jar文件。使用“ java -cp。:mysql.jar …”。哦
这是一个webapp!然后把mysql jar文件放到WEB-INF / lib文件夹中。

Hibernate-找不到适用于jdbc的驱动程序:mysql // *

Hibernate-找不到适用于jdbc的驱动程序:mysql // *

我正在尝试在Web项目引用的Java项目中运行hibernate模式。足够简单,除了无法hibernate以连接到数据库。我有很多人描述这个问题并获得大量答案,但是似乎没有一个对我有用。

这就是我的 hibernate.cfg.xml的 样子:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory>    <!-- Database connection settings -->     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>     <property name="hibernate.connection.url">jdbc:mysql//localhost:3306/dbname</property>     <property name="hibernate.connection.username">root</property>     <property name="hibernate.connection.password">commander</property>     <!-- JDBC connection pool (use the built-in) -->    <property name="connection.pool_size">50</property>    <!-- SQL dialect -->    <property name="dialect">org.hibernate.dialect.MySQLDialect</property>    <!-- Enable Hibernate''s automatic session context management -->    <property name="current_session_context_class">thread</property>    <!-- Enable the second-level cache  -->    <property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>    <!-- Echo all executed SQL to stdout -->    <property name="show_sql">true</property>    <!-- Drop and re-create the database schema on startup -->    <property name="hbm2ddl.auto">update</property>    <mapping resource="com/amakena/profile/mapping/Credentials.hbm.xml"/>    <mapping resource="com/amakena/profile/mapping/Profile.hbm.xml"/>    <mapping resource="com/amakena/profile/mapping/City.hbm.xml"/>    <mapping resource="com/amakena/profile/mapping/Country.hbm.xml"/>    <mapping resource="com/amakena/profile/mapping/Gender.hbm.xml"/></session-factory></hibernate-configuration>

我将代码调试为 DriverManagerConnectionProvider 类,尝试使用 getConnection() 方法会引发异常

Connection conn = DriverManager.getConnection(url, connectionProps);

我检查了url和connectionProps,它们是hibernate.cfg.xml中的

我在tomcat \ lib文件夹中添加了 mysql-connector-java-3.1.14-bin
,我可以在Eclipse中的Libraries> Apache Tomcat v6.0>下看到它。我也将它添加到我的%Javahome%\ lib \
ext和我的CLASSPATH变量中(我知道这是绝望的,这是没用的)。

我通过在 session.beginTransaction() 之前运行以下代码来确保我的驱动程序已正确安装,这反过来导致
DriverManagerConnectionProvider.getConnection()

Class.forName("com.mysql.jdbc.Driver");Properties connectionProperties = new Properties();connectionProperties.put("user", "root");connectionProperties.put("password", "root");DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", connectionProperties);

我注意到发出第一行会导致相同的异常。

抛出异常

WARNING: Method execution failed: org.hibernate.exception.JDBCConnectionException: Cannot open connectionat org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99)at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52)at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449)at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:160)at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:81)at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1473)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at     org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:345)at $Proxy0.beginTransaction(Unknown Source)at com.amakena.profile.dao.CredentialsDao.hydrate(CredentialsDao.java:45)at com.amakena.profile.ProfileManager.login(ProfileManager.java:19)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34)at org.directwebremoting.impl.DefaultRemoter$1.doFilter(DefaultRemoter.java:428)at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431)at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283)at org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52)at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101)at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146)at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)at java.lang.Thread.run(Unknown Source)Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql//localhost:3306/dbnameat java.sql.DriverManager.getConnection(Unknown Source)at java.sql.DriverManager.getConnection(Unknown Source)at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)... 37 moreWARNING: --Erroring: batchId[24] message[org.hibernate.exception.JDBCConnectionException: Cannot open connection]

我感谢我能得到的所有帮助。提前致谢。

使用的版本:Tomcat v6.0-Hibernate 3.6.6-Java 6-Eclipse 3.5.2 R35x

答案1

小编典典

您在“ mysql”之后忘记了冒号:

 <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dbname</property>

这是URL格式的文档:

jdbc:mysql://[host][,failoverhost...][:port]/[database]

没有合适的驱动程序 总是意味着已加载驱动程序JAR,但是您的URL语法不正确。

关于jdbc到MYSQL错误:找不到适用于jdbc:mysql:// localhost:3306 / test的合适驱动程序?user='root'&password =''的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于Access denied for user ''root''@''localhost'' (using password:YES) Mysql5.7、ClassNotFoundException:com.mysql.jdbc.DriverWeb应用程序的JDBC MySQL驱动程序、ClassNotFoundException:com.mysql.jdbc.Driver。Web应用程序的JDBC MySQL驱动程序、Hibernate-找不到适用于jdbc的驱动程序:mysql // *的相关信息,请在本站寻找。

本文标签: