在连接MySQL数据库时,我执行以下步骤

Connection con = null;
Resultset rs = null;
Statement st = null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/database","root","passwp");

实际上,我想知道Class.forName("com.mysql.jdbc.Driver").newInstance();语句是做什么的.

尽管这个类不在mysql.jar中.它现在在哪里?

推荐答案

Class类位于java.lang包中,因此它与java一起分发,并自动导入到每个类中.

forName()方法所做的就是返回类加载器加载的参数的Class对象.然后,newInstance()方法返回该类的新实例.

所以接下来会发生的是你打电话给 Class.forName(...)个 它返回com.mysql.jdbc.Driver.class. 然后在那个类上调用newInstance(),它返回类的一个实例,没有参数,所以基本上是调用new com.mysql.jdbc.Driver();.

Database相关问答推荐

Metasploit 数据库警告

芭蕾舞女演员坚持 1:N 关系

如何手动卸载 Oracle?

Spring Boot:如何使用多个模式并在运行时动态 Select 使用哪一个

在 postgresql 中将列从字符串更改为字符串数组

内存数据库和磁盘内存数据库的区别

PHP + SQL Server - 如何设置连接字符集?

A QuerySet 按聚合字段值

什么是非关系数据库的例子?

Android 上的测试数据库:ProviderTestCase2 还是 RenamingDelegatingContext?

PostgreSQL 哈希索引

使用 PHP/PDO 判断数据库表是否存在

游戏中使用什么样的数据库?

数据库模式与数据库表空间?

处理多个表的最佳实践

SQLite3 UNIQUE 约束失败错误

数据库与平面文本文件:当性能不是问题时, Select 一个而不是另一个的一些技术原因是什么?

字符串列上的postgresql索引

如何使用反射调用扫描可变参数函数

使用 oracle sql developer 从一个数据库复制到另一个数据库 - 连接失败