java为什么不用加载驱动也能连接数据库??

代码这个packagecom.bjsxt.user;importjava.sql.Connection;importjava.sql.DriverManager;impo... 代码这个

package com.bjsxt.user;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;
import com.bjsxt.connectonDataBase.ConnectionDataBase;import com.bjsxt.user.User;import com.bjsxt.user.UserDao;

public class Test01 {
public static void main(String[] args) { boolean flag=false; flag=userControlle(); System.out.println(flag); } public static boolean userControlle(){ boolean flag=false; Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; //Class.forName("com.mysql.jdbc.Driver"); String sql="select * from user_table where uname='jhc001'"; try { conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/bjsxtusers","root","BJSXT"); ps=conn.prepareStatement(sql); rs=ps.executeQuery(); while(rs.next()){ System.out.println(rs.getString(2)); flag=true; } } catch (SQLException e) { eprintStackTrace(); } return flag; }}
展开
 我来答
micro0369
推荐于2018-05-15 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:3921万
展开全部

这不应该啊,

 

看你的代码,也没有别的地方可以预先加载驱动类啊

 

我刚刚查到这么一句话:

jdbc4.0 是不用显式的去加载驱动,如果驱动包符合 SPI 模式就会自动加载

应该就是原因了。

0613032107
2013-07-20 · TA获得超过347个赞
知道小有建树答主
回答量:216
采纳率:0%
帮助的人:208万
展开全部
也许在DriverManager里面已经为你封装好了驱动的注册了,在这里也只是猜想[【系统根据驱动url的前段部分:jdbc:mysql自动判断注册驱动了】,否则不注册驱动是无法进行数据库操作的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NiceBabyLuckys
2013-07-20 · TA获得超过167个赞
知道小有建树答主
回答量:257
采纳率:100%
帮助的人:40.6万
展开全部
可能资源在缓存里了,要不就是你其它类中加载了,在不就是因为你没有正常关闭资源导致缓存中还在!在不就是你在配置文件中配置了,然后再类中加载了!比如数据库连接池。。。。
追问
我源代码就摆在那,真的没加载
追答
不加载是不可能连接数据库的,肯定是其他地方加载了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
baoer1127
2019-05-07 · TA获得超过926个赞
知道小有建树答主
回答量:939
采纳率:71%
帮助的人:330万
展开全部

网上搜了很多,看了一下源码:

java.sql.DriverManager 类,在类注释中有下面的这一行:

* <P>Applications no longer need to explicitly load JDBC drivers using <code>Class.forName()</code>. Existing programs
* which currently load JDBC drivers using <code>Class.forName()</code> will continue to work without

所以不用Class.forName()注册数据库的驱动也能加载驱动。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-07-20
展开全部
你的Class.forName 不是在注册驱动吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式