无法在Groovy中连接SQL Server

时间:2017-08-02 19:48:54

标签: java sql-server selenium groovy workfusion

我正在尝试使用自动化工具(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>

请帮助解决问题。

1 个答案:

答案 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