我正在使用一种方法,它返回一个数据源.方法如下:
public static DataSource getDataSource(){
String url;
//url="jdbc:hsqldb:file:"+filePath;
url = "jdbc:hsqldb:file:D:/EclipseWorskpace/ew-pg/lmexadapter/hsqldb-example/src/main/webapp/WEB-INF/data/db/hsqldb.jar";
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setUsername("SA");
basicDataSource.setPassword("password");
basicDataSource.setDriverClassName("org.hsqldb.jdbc.JDBCDriver");
basicDataSource.setUrl(url);
System.out.println("$$$$$$$$ URL is : " + url);
return basicDataSource;
}
Run Code Online (Sandbox Code Playgroud)
我从dao调用这些方法.并且所有这些我使用ibatis进行OR映射.当我通过junit test运行我的测试用例时,它给了我一个例外:
" org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.hsqldb.jdbcDriver'
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1259)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1192)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:884)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:213)
... 35 more
Caused by: java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1253)
... 39 more
"
Run Code Online (Sandbox Code Playgroud)
小智 5
以前的答案是正确的,错误的.
HSQLDB jar需要添加到类路径中.问题出在之前的答案中,提问者被指向没有他们正在寻找的类的项目的旧版本.未找到的类仅在HSQLDB的第2版中,可从 http://sourceforge.net/projects/hsqldb/files/hsqldb/hsqldb_2_3/获得.
如果您使用 Maven 尝试添加
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.4.0</version>
<scope>runtime</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
到你的 pom.xml
| 归档时间: |
|
| 查看次数: |
39923 次 |
| 最近记录: |