拼写粗心导致的错误:mybatis配置文件、spring配置文件

本文详细解析了Java应用中遇到的MySQL数据库连接失败及MyBatis配置错误问题,包括驱动未找到、配置文件拼写错误等,通过修正配置及检查代码,最终解决了数据库连接与MyBatis框架的初始化异常。

------------------------2018-07-03 No.2

Q1:

报错信息:

java.sql.SQLException: No suitable driver
             at java.sql.DriverManager.getDriver(Unknown Source)

             at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285)

             at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:175)
             at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:220)
             at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:206)
             at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:203)
             at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1138)
             at com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1125)
             at com.mchange.v2.resourcepool.BasicResourcePool.access$700(BasicResourcePool.java:44)
             at com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1870)
             at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:696)


原因分析:以上红字表示没有匹配到驱动

原因 ①:jdbc.proprities文件的配置写错,对下如下正确的配置内容:

正确:

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/o2o?useUnicode=true&characterEncoding=utf8
jdbc.username = root
jdbc.password = SQL.123456

代码测试:

public class TestMysqlConnection {
  public static void main(String[] args) {
    String url = "jdbc:mysql://localhost:3306/o2o";
    String username = "root";
    String password = "SQL.123456";
    try {
      Connection con = (Connection) DriverManager.getConnection(url , username , password ) ;
      System.out.println("url,username,password:"+url+username+password);
      System.out.println("数据库连接成功!");
    }catch (Exception e) {
      // TODO: handle exception
      System.out.println("数据库连接失败!");
    }
  }
}

 

原因 ②:根据at com.mchange.v2.c3p0.DriverManagerDataSource.driver(DriverManagerDataSource.java:285),spring配置文件,查看数据库连接池的配置内容,发现拼写错误。

错误如下:

<!-- 配置连接池 -->
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.driver}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>

修正:

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

---------------------------------------------------------------------

Q2:

报错信息:

警告: Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException:

Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring/spring-dao.xml]: Invocation of init method failed;

nested exception is org.springframework.core.NestedIOException: Failed to parse config resource: class path resource [mybatis-config.xml];

nested exception is org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration.

Cause: org.apache.ibatis.builder.BuilderException: The setting mapUnderscoreToCameCase is not known.  Make sure you spelled it correctly (case sensitive)

原因分析:根据以上标记的红字,可能出现错误的地方在 spring-dao.xml 文件中的 mapUnderscoreToCameCase,找到该处,发现mapUnderscoreToCameCase拼写错误,

正确改为:mapUnderscoreToCameCase -->mapUnderscoreToCamelCase

 

总结:

花了一个小时时间,排除了mybatis版本、@ContextConfiguration的路径问题,数据库驱动问题,发现是低级的拼写错误导致,

以后需要小心仔细,尽量不浪费有效的时间!

 

转载于:https://www.cnblogs.com/lilySeven/p/9259469.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值