JDBC到底是怎么注册数据库驱动程序的??? 方法二:new org.gjt.mm.mysql.Driver();这句不就是实例化了 org.gjt.mm.mysql.Driver 类的一个对象? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class.forName()只是加载类,引用其中的静态成员,不生成实例而new org.gjt.mm.mysql.Driver() 生成实例,当然也要加载类,当然也可以引用其中的静态成员,至于System.setProperty("jdbc.drivers","org.gjt.mm.mysql.Driver")它的机制我就不清楚了,有高手能否解释一下 回yukikaze(樱吹雪) :光实例化了一个对象有什么用呢,不过我想Iamshigang()说的有道理回ldianfeng(呆鸟三号):那都是些CLASS文件怎么看源代码啊?回Iamshigang() :可是加载类有什么用呢?不是类路径(Classpath)里已经设置好了吗?要使用一个类的静态成员不是直接使用就行了吗?干嘛还要加载类呢? Class.forName("org.gjt.mm.mysql.Driver");//是加载驱动程序啊? 关于Class.forName()的作用 指定java虚拟机加载这个类,同时初始化这个类的静态初始化部分。 注意,没有创建这个类的实例。 一般在加载数据库驱动类的时候,驱动类的静态初始化部分会有初始化连接的作用。 如果这个类没有静态初始化的部分,我想这个语句应该也没有什么作用。 to:wanghongtaoleifeng(小声点) 是啊to:mmhhllRen(mhl)这么说我就明白了,那个System.setProperty("jdbc.drivers","org.gjt.mm.mysql.Driver")呢 因为System.getProperty()可以获得一些系统信息,比如System.getProperty("os.name");我想System.setProperty("jdbc.drivers","org.gjt.mm.mysql.Driver")其实就是把org.gjt.mm.mysql.Driver注册到jdbc.drivers上,然后系统自动通过jdbc.drivers象获取os.name一样获得驱动,从而加载吧;至于为什么要这样,还要请高手解释了:) 看下API的实现方式即源码那里怎么实现的估计是提供了几种方式,所以就有了你所说的问题 项目加了个上传图片的功能后出现了这个问题 (集思广益)大家讨论下关于从XML中抽取数据到页面展示的方式 JBPM4动态创建ActivityImpl java经典的MD5加密工具类谁有? java解析、新增json的问题 为什么我生成的schema不起作用? eclipse的启动问题 各位高人 请问怎么用struts配置sqlserver2000的驱动啊 除了struts之外,还有什么著名的构架啊? spring下如何测试session 请教一个问题 Struts------action里的代码为什么都要执行2次 中文問題
而new org.gjt.mm.mysql.Driver() 生成实例,当然也要加载类,当然也可以引用其中的静态成员,
至于System.setProperty("jdbc.drivers","org.gjt.mm.mysql.Driver")它的机制我就不清楚了,有高手能否解释一下
光实例化了一个对象有什么用呢,不过我想Iamshigang()说的有道理回ldianfeng(呆鸟三号):
那都是些CLASS文件怎么看源代码啊?回Iamshigang() :
可是加载类有什么用呢?不是类路径(Classpath)里已经设置好了吗?要使用一个类的静态成员不是直接使用就行了吗?干嘛还要加载类呢?
指定java虚拟机加载这个类,
同时初始化这个类的静态初始化部分。
注意,没有创建这个类的实例。
一般在加载数据库驱动类的时候,
驱动类的静态初始化部分会有初始化连接的作用。
如果这个类没有静态初始化的部分,我想这个语句应该也没有什么作用。
是啊to:mmhhllRen(mhl)
这么说我就明白了,那个System.setProperty("jdbc.drivers","org.gjt.mm.mysql.Driver")呢