gpt4 book ai didi

Java 行集/数据访问对象失败

转载 作者:行者123 更新时间:2023-11-29 09:20:22 25 4
gpt4 key购买 nike

我使用行集在我的 selenium 框架中传递查询结果。偶尔数据访问对象会抛出以下内容

java.sql.SQLException: 找不到适合 jdbc:jtds:sqlserver://MYDatabasename:1433/DB 的驱动程序

它使用相同的驱动程序和行集来访问,只是偶尔会失败。任何帮助,将不胜感激。

行集:

public static RowSet GetRowSet(String SqlQuery, String[] Parameters, String DB){

CachedRowSet rs;
String ROWSET_IMPL_CLASS = "com.sun.rowset.CachedRowSetImpl";
rs = null;

try {
Class<?> c = Class.forName(ROWSET_IMPL_CLASS);
rs = (CachedRowSet) c.newInstance();

rs.setUrl(Configuration.DBConnString + DB);
rs.setUsername(Configuration.DBUser );
rs.setPassword(Configuration.DBPwd );
rs.setReadOnly(true);
rs.setCommand(SqlQuery);

for (int p=0;
p<Parameters.length;
p++)

{
rs.setString(p+1, Parameters[p]);
}

rs.execute();

代码示例:

public void examplevoid(String string, String string2)

throws Exception {

RowSet RoS = null;
RoS = Example.GetExample(string, string2);
while (RoS.next()) {
String Example = RoS.getString("Example");
selenium.click(Example)
selenium.waitForPageToLoad(setup.timeoutsetting);
}
RoS.close();

它使用并依次调用行集:

  public static RowSet GetExample(String string, String string2) throws 
String[] Parameters = {string, string2};
RowSet ExampleRowSet= null;
ExampleRowSet = DataAccess.GetRowSet("Some SQL HERE", Parameters, Configuration.DB);

return Example;

最佳答案

这似乎是不可能的。要么加载驱动程序类,要么不加载。加载后,使用相同的 JDBC URL 连续调用 DriverManager.getConnection() 永远不会出现该错误。还有什么事吗?

编辑: 我看到的唯一有问题的是您的所有 Configuration.* 属性似乎是某处某个类中的字段。如果其中一些属性在测试之间更改值,则可能是您的 JDBC 驱动程序由于错误的属性值导致抛出异常,例如 Configuration.DBConfiguration.DBConnString。如果它相当可重复,请尝试更改

rs.setUrl(Configuration.DBConnString + DB);

String url = Configuration.DBConnString + DB;
log.debug("Using JDBC URL: " + url);
rs.setUrl(url);

当异常发生时,看看字符串看起来是否不同。

关于Java 行集/数据访问对象失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6902213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com