首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jdbc动态类加载

jdbc动态类加载
EN

Stack Overflow用户
提问于 2014-08-05 00:32:50
回答 2查看 626关注 0票数 1

您好,我正在尝试通过类加载器加载jdbc驱动程序。

这里我是代码,但为什么我得到这个错误,如果可能的话,给我一些例子

我不知道如何设置类路径变量

我正在做一个数据库应用程序,这个应用程序需要一次又一次地连接数据库,我想把这个应用程序给我的朋友,但我的朋友不知道类路径,他就像普通用户一样。

我的应用程序可以连接4种类型的数据库MS-Access,MySQL,Oracle,SQLlite…在用户系统中,我必须设置5个类路径变量并提供5个jar文件

如果我给这个应用程序100个人,而不是他们设置了set class path变量

我可以在我的应用程序中包含jar文件,但如何动态设置类路径...请提供一些例子。

代码语言:javascript
复制
  package classload;

import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ClassLoad {

    static Connection con;
    public static void main(String[] args) {

         File jar = new File("C:\\query\\Driver.jar").getAbsoluteFile();
          if(jar.exists()){
            System.out.print("File exits");  
          }

          URL urls[] = null;
        try {
            urls = new URL[] {
                jar.toURI().toURL()
              };
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

          ClassLoader cl = new URLClassLoader(urls);

          try {
              Class.forName("com.mysql.jdbc.Driver", true, cl);
            con=DriverManager.getConnection("jdbc:mysql://localhost", "root", "anil");
            Statement stm=con.createStatement();
            ResultSet result=stm.executeQuery("select *from actor");
            while(result.next()){
                System.out.print(result.getInt(1)+" "+result.getString(2)+" "+result.getString(3));
                System.out.println("");

            }

        } catch (SQLException e) {
            System.out.println(e);

        }catch(ClassNotFoundException e){
            System.out.println(e);
        }



    }

}

例外情况是

代码语言:javascript
复制
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost
EN

回答 2

Stack Overflow用户

发布于 2014-08-05 00:46:45

只需使用One-Jar将应用程序和所有依赖项打包到单个fat jar中即可。你的解决方案不好。您的朋友必须使用与您相同的文件夹结构才能正常工作。

票数 0
EN

Stack Overflow用户

发布于 2014-08-05 01:06:12

出现此错误可能是因为所需的jar文件mysql-connector未包含在您的项目中。尝试包含here所示的jar文件。并尝试使用此代码加载驱动程序类:

代码语言:javascript
复制
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/jlcstudents","root","password");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25123373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档