我使用以下代码连接到带有java的数据库:
Class.forName(some driver name);
现在,为了运行它,我必须将相关的jar包含在构建路径中。 我的问题是,是否有一个驱动程序(可能内置在sdk / jre中)不需要包含jar?
谢谢
答案 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驱动程序的方法,但不要求驱动程序在您的类路径上。