Rub*_*bee 2 java mysql database odbc jdbc
这是我的代码 - 我只是检查我的MySQL数据库连接.
但首先我已成功编译并运行该程序.但后来我评论了Class.forName这一行.
仍然当我编译它运行成功,没有任何错误.为什么?
import java.sql.Connection;
import java.sql.DriverManager;
public class FirstJbdc {
public static void main(String[] args) {
Connection cn=null;
try {
//Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("Driver loaded successfully");
cn=DriverManager.getConnection("jdbc:odbc:myDSN","root", "java");
System.out.println("Database connected successfully....");
System.out.println(cn);
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我抛出一个错误,好吧.只是那个
catch (Exception e){
// here the exception is instantiated, but nothing is done about it
}
Run Code Online (Sandbox Code Playgroud)
子句默默地吞下你的例外.
试试吧
System.out.println( e.getMessage() );
Run Code Online (Sandbox Code Playgroud)
在catch子句中
即使不使用Class.forName,Java 1.6也可以找到JDBC驱动程序.
以下是文档的相关部分:
该
DriverManager
方法getConnection
并getDrivers
已得到增强,支持Java标准版服务提供商的机制.JDBC 4.0驱动程序必须包含该文件META-INF/services/java.sql.Driver
.此文件包含JDBC驱动程序实现的名称java.sql.Driver
.例如,要加载my.sql.Driver
类,META-INF/services/java.sql.Driver
文件将包含以下条目:Run Code Online (Sandbox Code Playgroud)my.sql.Driver
应用程序不再需要使用Class.forName()明确加载JDBC驱动程序.当前使用Class.forName()加载JDBC驱动程序的现有程序将继续工作而无需修改.
归档时间: |
|
查看次数: |
309 次 |
最近记录: |