jar包跟普通java类用法不一样吗? 我在WEB工程里面那些jar包都是怎么工作的?
比如我连接oracle数据库时工程目录下已经把驱动包都拷到我的当前工程WEB-INF/lib下了,那为什么还要再次Class.forName(---)去加载驱动呢?
jar包已经在我的当前工程下了,难道它里面的方法不能直接用吗?
比如我连接oracle数据库时工程目录下已经把驱动包都拷到我的当前工程WEB-INF/lib下了,那为什么还要再次Class.forName(---)去加载驱动呢?
jar包已经在我的当前工程下了,难道它里面的方法不能直接用吗?
都需要调用的 普通法的java类 比如 Date 也是需要调用的啊
当前情况是楼主使用了jdbc的操作数据库服务接口来获取对数据库的操作服务,依赖于这个规范而非具体实现,而jdbc背后的实现也没有把针对不同数据库的部分写死在里面,而是需要调用端手动加载映射(Class.forName())。
你的程序里并不直接import你的驱动类,因为一般驱动类的具体类名是什么不需要也没必要关心,不同的提供商类名可能不一样,但是不管怎样该类一定是Sun的sql包下的接口类的实现。所以一般数据库程序里不直接import该驱动类而是import sun的sql包的类(当然有些框架是自己封装了这些类)。此时你要用到具体的驱动类,但你没有import,所以你只能用反射的class.forName去找到并加载这个类
那我想用jar包里面的方法时是要在import后只加jar包名还是必须再加上jar包里面的类名呀?
(你要用解压工具查看jar里的包)
只是还有点校疑问:就是我可以import class12.*;这样导入如oracle驱动吗?就是不用Class.forName();
我感觉工程里面用的好多jar包,比如jstl的jar包还有别的jar包,都没有反向加载,为什么数据库就要必须这样做呢?