H2 java.sql.SQLException:找不到合适的驱动程序
Posted
技术标签:
【中文标题】H2 java.sql.SQLException:找不到合适的驱动程序【英文标题】:H2 java.sql.SQLException: No suitable driver found 【发布时间】:2014-05-09 22:37:21 【问题描述】:我试图通过调用 ANT 脚本从 maven 调用 org.h2.tools.RunScript 类。
maven 看起来像 ...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.3</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<tasks>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/>
<echo>Starting DB</echo>
<ant antfile="$basedir/dbbuild.xml" target="dbdo" />
</tasks>
</configuration>
</execution>
</executions>
</plugin>
ant 脚本如下所示:
<project name="" default="make" basedir=".">
<target name="make">
<property value="." name="basedir" />
<java classname="org.h2.tools.RunScript"
fork="true"
maxmemory="128m" >
<arg line="-user " />
<arg value=" sa" />
<arg line="-driver "/>
<arg value="org.h2.Driver" />
<arg line="-url " />
<arg value=" "jdbc:h2:file:$basedir\\mydb;LOCK_MODE=3""/>
<arg line="-script " />
<arg value=" $basedir/src/main/resources/database/h2/testSchema.sql"/>
<classpath>
<pathelement path="$runtime_classpath"/>
</classpath>
</java>
</target>
</project>
我不断收到此错误:
[java] Exception in thread "main" java.sql.SQLException: No suitable driver
found for jdbc:h2:file:C:\Apps\development\workspace\Phase3_1\directpay\quickpay
\\mydb;LOCK_MODE=3
[java] at java.sql.DriverManager.getConnection(DriverManager.java:602)
[java] at java.sql.DriverManager.getConnection(DriverManager.java:185)
[java] at org.h2.tools.RunScript.process(RunScript.java:312)
[java] at org.h2.tools.RunScript.runTool(RunScript.java:140)
[java] at org.h2.tools.RunScript.main(RunScript.java:68)
[java] Java Result: 1
[INFO] Executed tasks
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] --------------------
h2-1.3.163.jar 在类路径中。任何帮助将不胜感激。 谢谢
【问题讨论】:
URL 不应该是jdbc:h2:c:\Apps\...
而不是jdbc:h2:file:...
。您可能还想尝试使用 /
而不是 `` 作为文件路径。
感谢您的评论。两个很好的建议,但它们似乎没有单独或结合起来产生影响。
【参考方案1】:
我发现了问题。 RunScript 的文档要求在 url 参数周围加上引号......
[-help] 或 [-?] 打印选项列表
[-url "
我已经逃脱了 quot;在参数的任一侧,一旦我删除了引号,它就可以正常工作。我将 arg 设置为:
<arg line="-url" />
<arg value="jdbc:h2:$basedir\mydb;LOCK_MODE=3;TRACE_LEVEL_FILE=3"/>
【讨论】:
以上是关于H2 java.sql.SQLException:找不到合适的驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLException:getShort() 的值无效 - ''
java.sql.SQLException: SQL 语句在 org.hsqldb.jdbc.JDBCUtil.sqlException 处关闭
Oracle DB:java.sql.SQLException:关闭连接
Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er