首页 > 解决方案 > 无法将 SQL 服务器连接到 Selenium Webdriver

问题描述

我已执行以下步骤: 1- 控制面板 > 管理工具 > 单击 ODBC

2- 转到用户 DSN 并单击添加按钮

3-选择相应的数据库(SQL Server Native Client)

4-给DSN命名并保存

通过 pom.xml 将以下 JDBC 驱动程序添加到我的项目中:

	<dependency>
  		 <groupId>com.microsoft.sqlserver</groupId>
   		 <artifactId>mssql-jdbc</artifactId>
   		 <version>6.5.2.jre9-preview</version>
   		 <scope>test</scope>
	</dependency>

然后我从 eclipse 中执行了下面的一段简单代码:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

连接连接 = DriverManager.getConnection("wsyddbd10678,1433","用户名", "密码");

语句 st = conn.createStatement();

String Sql ="select * from miris.dimset where setsk between 5499 and 5510";

结果集 rs = st.executeQuery(Sql);

while (rs.next())
{ System.out.println(rs.getString("setsk"));
}

但它给了我一个错误说:

Exception in thread "main" java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver. 

请建议..

标签: selenium-webdriver

解决方案


要获得与数据库的连接,您首先需要设置一些依赖项,具体取决于您连接的对象(哪个数据库)。

连接字符串设置:https ://www.connectionstrings.com/sql-server/

对于 MSSQL:

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>6.1.0.jre8</version>
</dependency>

您可以通过以下几种方式连接到 DB:

最简单(直接连接)

private WebDriver driver;
private Connection con = null;
private Statement stmt = null;
String dataBaseName = "testDB";
String dbDriver = "jdbc:sqlserver://localhost:3306/";
String user = "user";
String pass = "pass";
String Query;
ResultSet res;

public void DBConnection() throws Exception {
    try {
        Class.forName(
                "com.microsoft.sqlserver.jdbc.SQLServerDriver");
        Connection con = DriverManager.getConnection(
                dbDriver + dataBaseName, user, pass);
        stmt = con.createStatement();
    } catch (Exception e) {
        System.out.println(e.getMessage());
    }
}


@Test
public void testDB() throws Exception {
    try {
        Query = "Select * from table";
        res = stmt.executeQuery(Query);
        driver = new FirefoxDriver();  //or whatever driver
        driver.get("//some URL //");
        while (res.next()) //move to the next row in result set, 
        //... do your stuff //
    }
} catch(Exception e)

{
    System.out.println(e.getMessage());
}

或您的示例(已更新);

连接语法(MS-SQL 服务器):

[URL] = jdbc:sqlserver://[ipAddress]:portNumber/dbName

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");      
Connection con = DriverManager.getConnection([URL], userName, password);

或试试这个:

Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection con = DriverManager.getConnection([URL],userName, password);

然后是其余的代码:

Statement st = conn.createStatement();
String Sql = "query";
ResultSet rs = st.executeQuery(Sql);

while (rs.next()) 
{
    System.out.println(rs.getString("setsk"));
}

(或者我认为最好的)休眠

设置它的工作量很小,但是当它启动并运行时,它的工作方式真的很令人满意。这是关于它的教程:https ://www.javatpoint.com/steps-to-create-first-hibernate-application

希望这会有所帮助。


推荐阅读