beanshell jdbc连接,类加载

时间:2010-09-30 15:06:05

标签: jdbc beanshell

我想在beanshell脚本中连接到hsqldb。

我在加载课程时遇到了问题,我之前写过并且已经回复了。

代码如下:

    Connection conn = null;

    try {
            getClass("org.hsqldb.jdbcDriver").newInstance();
            conn =  DriverManager.getConnection("jdbc:hsqldb:file:C:/testdata/tdb","SA","");
            System.out.println("Connection established");
    }

我收到此错误:

java.sql.SQLException: No suitable driver found for jdbc:hsqldb:file:C:/testdata/tdb

我尝试注册Driver但是我没有工作

DriverManager.register(getClass("org.hsqldb.jdbcDriver").newInstance())

此代码已在java中工作(而不是使用Class.forName()而不是getClass()) beanshell需要什么才能使用这段代码?

谢谢, 比拉尔

1 个答案:

答案 0 :(得分:1)

我放弃了这一点,没有办法动态加载JDBC类而不是其他类型的对象,相反,我现在使用Runtime exec来调用DB的命令行程序。另外,beanshell有一个“exec()”方法。

幸运的是,我所需要的只是针对数据库运行脚本而不是实际与数据库交互,所以这对我有用。

此外,JDBC不会为您加载的原因是因为Beanshell有时会加载自己的类加载器(而不是默认的类加载器)。如果您尝试在Beanshell脚本中动态加载jar,则会发生这种情况。如果你把你的jdbc.jar放到Javasoft / ext目录中,那么我相信它会进入默认的类加载器。另外,如果你的Beanshell脚本足够谨慎not to trigger the new classloader,那么它也可以正常工作。换句话说,除了其他方面,不要在脚本中调用“addClassPath”。