我正在尝试使用自动化工具(Workfusion Studio)连接到SQL服务器,该工具使用selenium和groovy。我收到错误"没有为jdbc找到合适的驱动程序:sqlserver:/ XXXXXXXXXXXXXX"当我尝试创建连接时。
我正在使用的代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://web-harvest.sourceforge.net/schema/1.0/config" scriptlang="groovy">
<selenium-flow>
<selenium name="seleniumDriver" browser="chrome" close-on-completion="true" start-in-private="true">
<script><![CDATA[
import java.sql.*;
this.class.classLoader.addURL(new URL("http://clojars.org/repo/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.jar"));
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String dbURL = "jdbc:sqlserver://SERVER_NAME:1433;databaseName =DATABASE_NAME;";
String userName = "USER_NAME";
String password = "PASSWORD";
Connection con = DriverManager.getConnection(dbURL, userName, password);
]]></script>
</selenium>
</selenium-flow>
</config>
请帮助解决问题。
答案 0 :(得分:1)
JDBC连接是通过全局ClassLoader执行的,因此它不会将libs添加到本地ClassLoader中。
您可以将驱动程序jar全局添加到Control Tower tomcat:
<script><![CDATA[
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException expected) {
groovy.lang.GroovyShell.class.classLoader.addURL(new URL("http://clojars.org/repo/com/microsoft/sqlserver/sqljdbc4/4.0/sqljdbc4-4.0.jar"));
}
]]></script>
要在WorkFusion Studio中使用逻辑,请参阅Eclipse指南,了解如何添加外部jar。
作为一种解决方法(不建议用于生产代码),可以执行以下技巧:
<database connection="jdbc:sqlserver://hostname:6501;DatabaseName=database"
jdbcclass="com.microsoft.sqlserver.jdbc.SQLServerDriver"
username="user" password="securepassword">
select first_name from actor
</database>
执行查询的更有效方法如下(将正确关闭数据库连接等):
NumberFormatter