qq_41084438 2023-11-26 21:34 采纳率: 50%
浏览 14

Java手动加载JDBC问题

JDBC4.0之前在使用时需要用Class.forName去加载字节码,主要是触发静态代码块的执行,在静态代码块中有初始化、注册一些事情要做,没有做这些驱动就无法正常使用。
我的问题是为什么手动去触发,不能通过new的方式去自动加载?当这个class还未加载到JVM的时候,会先加载到JVM并执行一些静态代码块的方法。这样不就好了,为什么要用Class.forName,是因为要多次触发?因为new就只会触发一次。

  • 写回答

3条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-11-27 00:01
    关注

    用 new 的话,肯定是实例化某个特定的驱动类,相当于你的代码 和 这个数据库驱动 紧耦合了, 后续你要升级或者换驱动,你咋办? 再去改代码嘛?

    评论

报告相同问题?

问题事件

  • 创建了问题 11月26日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度