java中奇怪的问题;为啥在连接数据库的时候不用Class.forName()方法也可以连上数据库?求各位大侠帮我

还有,谁呢个解释一下,一定要写jdbc:odbc,我的数据库起的名字是sun,为什么我改为:
Connection con=DriverManager.getConnection("sun","","");这样就出错了呢??谁能解释一下,求java高手解释啊,这里的jdbc:odbc有什么作用???????????

那句话的作用是加载驱动,没有驱动是运行不起来,也就连接不到数据库,报错:没有找到合适的驱动。你那句一定要写的应该是告诉电脑是加载什么驱动。向我这个就是写明是SQLServerDriver驱动

追问

你有没有试过把class.forName();注释起来,即使注释了,也一样能连接上数据库,这个怎么解释????注释了就表示不用加载驱动了,但是不加载驱动也一样能连接上数据库,这是为什么呢???

追答

有,但是忘了是什么原因,好像是驱动的高级版本不需要在写加载驱动,有好像是tomcat的lib目录下放驱动包的原因。以前老师有说过一下,没记,后来报错了就写上去就不报错了,从此都习惯写加载驱动,也没理是什么原因

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-13
目测你用的是Access数据源,jdbc连接Access数据源的时候,url路径必须以连接字符串
jdbc:odbc作为开始,这个是固定用法,是使用规范,必须遵守。
第2个回答  2013-07-16
亲,class.forName()加载驱动连接数据库只是一种方式,而你的是另外一种方式;

jdbc是java类连接数据库的驱动,就像你电脑的独立显卡,没有驱动是工作不了的、本回答被网友采纳
第3个回答  2013-07-13
这是一种标准,用java连接数据库,,,必须以jdbc开始,让后是:号跟上 数据库名,在:号加数据库库名。
如果你同时有多种数据库,都有sun库,他去连接那个?
他去那里找驱动?
第4个回答  2013-07-13
你用的是电脑本身里面的ODBC数据源连接数据库的追问

能解释清楚一点嘛,自学好痛苦的,就发扬一下雷锋精神帮帮我呗。
假如我换了别的数据库,比如说mysql,那么我不写class.forName()还能连上数据库??

追答

那你必须要安装MYSQL的ODBC驱动才行啊

相似回答