黑马程序员技术交流社区

标题: 链接数据库时加载驱动的问题 [打印本页]

作者: Aiano    时间: 2016-12-28 12:56
标题: 链接数据库时加载驱动的问题
数据库大神给解答一下

//反射一下 赋值给谁了 后面也没用到呀
//只是加载到内存 没有实例化吗
Class.forName("com.mysql.jdbc.Driver");

Connection conn = ...;
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select * from news_inf");

作者: 小陵不懂    时间: 2016-12-28 21:38
创建Connection对象的时候,使用DriverManager类中的getConnection方法,该方法的底层返回的是return (getConnection(url, info, Reflection.getCallerClass()));其中用到了反射,你具体可以看看源码

作者: Lee_Hoon_Leong    时间: 2017-1-1 23:57
你是说:Class.forName("com.mysql.jdbc.Driver");这段代码吗?\r\n
在视频中老师已经讲过了,com.mysql.jdbc.Driver类中有一块静态代码块,其中执行了
[Java] 纯文本查看 复制代码
static {
try {
java.sql.DriverManager.registerDriver(new Driver());
} catch (SQLException E) {
throw new RuntimeException(“Can’t register driver!”);
}
}

所以在加载mysql驱动进内存的时候,会先执行该代码块并创建出一个Driver对象,然后调用registerDriver()方法将自己注册到DriverManager中

作者: 袁志娜    时间: 2017-1-4 22:58





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2