MyBatis 在我设置 MmySQL 时正在寻找 org/hsqldb/DatabaseURL
Posted
技术标签:
【中文标题】MyBatis 在我设置 MmySQL 时正在寻找 org/hsqldb/DatabaseURL【英文标题】:MyBatis is looking for org/hsqldb/DatabaseURL while I set for MmySQL 【发布时间】:2013-10-07 20:15:10 【问题描述】:我用 Maven3/Guice/MyBatis3.1 编写了一个示例项目,并使用“jdbc:mysql://...”
但是当我想调用映射器方法(mapper.getBean())时,我得到了:
java.lang.NoClassDefFoundError: org/hsqldb/DatabaseURL 在 org.hsqldb.jdbc.JDBCDriver.getConnection(未知来源) 在 org.hsqldb.jdbc.JDBCDriver.connect(未知来源) 在 java.sql.DriverManager.getConnection(DriverManager.java:579) 在 java.sql.DriverManager.getConnection(DriverManager.java:190) 在 org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:191) 在 org.apache.ibatis.datasource.unpooled.UnpooledDataSource.doGetConnection(UnpooledDataSource.java:186) 在 org.apache.ibatis.datasource.unpooled.UnpooledDataSource.getConnection(UnpooledDataSource.java:88) 在 org.apache.ibatis.datasource.pooled.PooledDataSource.popConnection(PooledDataSource.java:373) 在 org.apache.ibatis.datasource.pooled.PooledDataSource.getConnection(PooledDataSource.java:82) 在 org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:131) 在 org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:58)
【问题讨论】:
你的类路径上有 org/hsqldb/DatabaseURL 吗? 不,但是为什么呢?我使用的是 mysql 而不是 hsqldb! 【参考方案1】:确保包含org.hsqldb.DatabaseURL
的库位于您的classpath
上
【讨论】:
为什么?我使用的是 mysql 而不是 hsqldb,所有驱动程序都必须使用它?! 我对 MyBatis 不熟悉。如果所有内容都是自包含的,那么 org.hsqldb.DatabaseURL 可能会在给定一些 jdbc url 的情况下加载适当的驱动程序(这是一个疯狂的猜测)。最终,基础设施正在寻找 org.hsqldb.DatabaseURL,因此它需要位于您的类路径中。如果您确定 org.hsqldb.DatabaseURL 不是必需的,则可能是您的配置有问题。 我检查了我的配置,似乎没问题, 我也关注了 guice 配置页面,在 maven 中只有 MyBatis 的依赖而已以上是关于MyBatis 在我设置 MmySQL 时正在寻找 org/hsqldb/DatabaseURL的主要内容,如果未能解决你的问题,请参考以下文章