用java连接数据库而不用外部jar - 有这样的事情吗?

时间:2012-02-06 10:41:12

标签: java jdbc

我使用以下代码连接到带有java的数据库:

 Class.forName(some driver name);

现在,为了运行它,我必须将相关的jar包含在构建路径中。 我的问题是,是否有一个驱动程序(可能内置在sdk / jre中)不需要包含jar?

谢谢

3 个答案:

答案 0 :(得分:4)

内置于Oracle Java 6 JRE的唯一JDBC驱动程序是JDBC-ODBC bridge。但是,不建议使用它。

对于任何其他DBMS,您需要一个合适的JDBC驱动程序JAR。

答案 1 :(得分:0)

无法连接任何驱动程序,因为驱动程序可以作为连接我们的应用程序和数据库服务器的桥梁

答案 2 :(得分:0)

可能的解决方案:在jar中包含连接器jar,在运行时将其解压缩并使用URLClassLoader加载驱动程序。

完全抽象调用MSSQL驱动程序的示例:

URLClassLoader cl = ...; // create and initialize URLClassLoader
Class c = cl.loadClass("com.microsoft.sqlserver.jdbc.SQLServerDataSource").newInstance().getClass();
c.getMethod("setUser", String.class).invoke(o, connectionParameters.user);
c.getMethod("setPassword", String.class).invoke(o, connectionParameters.password);
c.getMethod("setServerName", String.class).invoke(o, connectionParameters.serverName);
c.getMethod("setDatabaseName", String.class).invoke(o, connectionParameters.databaseName);
return (Connection) c.getMethod("getConnection").invoke(o);

它使用特定于MS驱动程序的方法,但不要求驱动程序在您的类路径上。