作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 Class.forName()
加载 JDBC 驱动程序而不是驱动程序提供一些静态方法来做同样的事情背后的逻辑是什么?
例如,为什么不改为调用 SomeDriverClass.loadDriver();
并继续正常获取连接?对 java.sql.DriverManager.registerDriver()
的调用不能以这种方式发生的原因是什么?
最佳答案
这样,代码在编译期间就不需要在类路径中包含驱动程序类。您不希望编译时类路径中有无数过去、现在和 future 的不同 JDBC 驱动程序来使您的 JDBC 代码与所有这些数据库兼容。您不想每次升级/替换驱动程序或数据库时都重新编译代码。您所需要的只是 String
中的驱动程序类名称,它可以在外部配置(通常是属性或 xml 文件)。
换句话说:可移植性和可重用性。
如果是自用,想怎么弄就怎么弄。但是如果你是在一个要公开发布的库中做的(例如 ORM 或一些数据库管理工具),它不会变得流行,因为最终用户必须获取源代码并在每次不这样做时更改/重新编译它'支持他们的数据库。
关于java - 为什么 JDBC 驱动程序在类的静态初始值设定项中注册自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5227510/
我想成为 Spark 纱客户(link)。是否需要安装hadoop?还是只安装 yarn 可以吗? (by this link) 最佳答案 No Spark不需要Hadoop即可运行。 Apache
我是一名优秀的程序员,十分优秀!