当前位置: 首页 > 知识库问答 >
问题:

从tomcat 8.0中找不到适合JDBC:MySQL的驱动程序

龙欣德
2023-03-14

我正在尝试Tomcat8.0中的应用程序,但我得到了错误

org.springframework.JDBC.CanNotGetJdbcConnectionException:无法获取JDBC连接;嵌套异常为java.sql.sqlexception:未找到适用于JDBC的驱动程序:mysql:/ip:3306/Durga_Dev?Characterencoding=UTF-8

at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:630) ~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:695) ~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:727) ~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:737) ~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:787) ~[spring-jdbc-4.1.6.RELEASE.jar:4.1.6.RELEASE]

我正在使用

  1. Tomcat 8.0.21
  2. spring 4.1.6
  3. MySQL收集器:mysql-connector-java-5.1.27.jar

下面给出了我的context.xml文件。

context.xml

<?xml version="1.0" encoding="UTF-8"?>



<beans xmlns="http://www.springframework.org/schema/beans"
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                xmlns:context="http://www.springframework.org/schema/context"
                xmlns:p="http://www.springframework.org/schema/p"
                xmlns:util="http://www.springframework.org/schema/util"
                xmlns:tx="http://www.springframework.org/schema/tx" 
                xsi:schemaLocation="
                        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
                        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd
                        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd">

    <bean id="datasourceProperties" 
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:META-INF/config/datasource.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
  </bean>
  <bean id="batchUpdateDataSource"
        class="org.springframework.jdbc.datasource.DriverManagerDataSource">

        <property name="driverClassName">
            <value>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</value>
        </property>

        <property name="url">
            <value>${jdbc.components.url.DURGA}</value>
        </property>

        <property name="username">
            <value>${jdbc.components.userName.DURGA}</value>
        </property>

        <property name="password">
            <value>${jdbc.components.password.DURGA}</value>
        </property>

 </bean>

  <bean id="batchJDBCTemplate" class="com.nri.durga.maf.batch.MafBatchJdbcTemplate">
    <constructor-arg
        type="org.springframework.jdbc.datasource.DriverManagerDataSource"
        ref="batchUpdateDataSource" />
 </bean>
  <bean id="GLOBAL" 
        class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
        p:URL="${jdbc.components.url.GLOBAL}"
        p:user="${jdbc.components.userName.GLOBAL}"
        p:password="${jdbc.components.password.GLOBAL}">        
  </bean>
  <bean id="DURGA" 
        class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
        p:URL="${jdbc.components.url.DURGA}"
        p:user="${jdbc.components.userName.DURGA}"
        p:password="${jdbc.components.password.DURGA}">        
  </bean> 

  <bean id="global-tm" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="global-em" />
    <property name="dataSource" ref="GLOBAL" />
  </bean>
  <bean id="durga-tm" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="durga-em" />
    <property name="dataSource" ref="DURGA" />
  </bean>  
  <tx:annotation-driven transaction-manager="transactionManager"/>

  <bean id="jpaVendorAdapter" class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
    <property name="showSql" value="false" />
    <property name="generateDdl" value="false" />
    <property name="databasePlatform" value="${jpa.hibernate.dialectClass}" />
  </bean>

  <bean id="global-em" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
        p:packagesToScan="com.nrift.finch.*.model, com.nrift.finch.*.domain" 
        p:dataSource-ref="GLOBAL"
        p:jpaVendorAdapter-ref="jpaVendorAdapter" />
  <bean id="durga-em" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
        p:packagesToScan="com.nri.durga.*.model, com.nri.durga.*.domain" 
        p:dataSource-ref="DURGA"
        p:jpaVendorAdapter-ref="jpaVendorAdapter" /> 
</beans>

DataSource.Properties

jdbc.components.all=GLOBAL
# Setting for GLOBAL component
jdbc.components.url.GLOBAL=jdbc:mysql://ip:3306/DURGA_DEV
jdbc.components.userName.GLOBAL=usr
jdbc.components.password.GLOBAL=pswd
jdbc.components.minLimit.GLOBAL=1
jdbc.components.maxLimit.GLOBAL=200
jdbc.components.initialLimit.GLOBAL=1
jdbc.components.queryTimeout.GLOBAL=0

# Setting for DURGA component
jdbc.components.url.DURGA=jdbc:mysql://ip:3306/DURGA_DEV
jdbc.components.userName.DURGA=usr
jdbc.components.password.DURGA=pswd
jdbc.components.minLimit.DURGA=1
jdbc.components.maxLimit.DURGA=200
jdbc.components.initialLimit.DURGA=1
jdbc.components.queryTimeout.DURGA=0

# Datasource properties Mysql
jdbc.database.driverClass=com.mysql.jdbc.Driver
jpa.hibernate.dialectClass=org.hibernate.dialect.MySQL5Dialect

共有2个答案

管峻
2023-03-14

在部署应用程序并从Eclipse启动Tomcat时,我遇到了类似的问题。构建war并将其手动复制到webapps文件夹后,它就可以工作了。

我的设置与这个问题中描述的非常相似:

java.sql.sqlexception:没有合适的驱动程序

驱动程序类在Tomcat的lib文件夹中,但从Eclipse部署到wtpwebapps中时,似乎没有加载我的config.xml。

戚奇略
2023-03-14

这意味着您的mysql驱动程序jar不在类路径中。确保它在“$CATALINA_HOME/lib”中

 类似资料:
  • 我问同样的问题,因为我没有找到答案。这是我的问题。我一直在尝试使用jdbc驱动程序连接mysql数据库。以下是我的主要sql处理程序类: 当我在普通的java代码中使用它时,一切都很好。例如,这很好: 但是,当我试图在我的servlet类中使用它时,我得到了一个错误: 没有找到适合jdbc的驱动程序:mysql://localhost/name_of_my_database. 我检查了上一个问题的

  • 问题内容: 使用Java,尝试连接到mysql数据库时出现此错误: 我正在使用驱动程序。它在我的构建路径中。我已经重启了MySQL。我还从命令行使用root用户登录,没有密码,并且连接正常。我目前在netstat中没有看到端口3306。以前我遇到了另一个错误(我没有更改代码)。错误是“用户’root’@’localhost密码NO拒绝jdbc mysql访问” 问题答案: 在这种特殊情况下(假设没

  • null servet是一个简单的“Hello World”servlet,只是为了测试连接。

  • 问题内容: 我正在尝试将我的代码从linux移植到mac OSX LION。以下方法在Linux上正常工作。 但这在我的Mac上不起作用。我正在使用XAMMP,因此数据库的路径为。我读到的错误 基于以下帖子的反馈进行的更新: 我下载了jar并将其添加到项目的构建路径。当我尝试添加时,出现编译错误,因此我将其注释掉。然后,我运行程序以获取以下错误: 问题答案: JAVA JDK不附带特定的SQL驱动

  • 问题内容: 这个问题已经在这里有了答案 : 臭名昭著的java.sql.SQLException:未找到合适的驱动程序 (13个答案) 4年前关闭。 使用Java,尝试连接到mysql数据库时出现此错误: 我正在使用驱动程序。它在我的构建路径中。我已经重启了MySQL。我还从命令行使用root用户登录,没有密码,并且连接正常。我目前在netstat中没有看到端口3306。以前我遇到了另一个错误(我

  • 由于某些原因,当我试图创建一个web服务以将id、name和idno插入mysql数据库时,下面的代码不会执行。我已经添加了MYSQL JDBC驱动程序-MYSQL连接器库,但我得到这个错误“severe:java.sql.SQLException:No appital Driver found for JDBC:MYSQL://localhost:3306/web”。我看过一些人的答案,但似乎没