参见英文答案 > What does ‘Class.forName(“org.sqlite.JDBC”);’ do? 2个
我正在学习JDBC,唯一我得不到的是下面代码中的类Class.
我是否删除了Class.forName(“com.mysql.jdbc.Driver”),它可以正常工作.
你能解释一下这部分中的Class.forName(“com.mysql.jdbc.Driver”)函数是什么吗?
import java.sql.*;
public class JSP {
public static void main(String[] args){
Connection myConn = null;
Statement st= null;
ResultSet rs= null;
try {
Class.forName("com.mysql.jdbc.Driver");
myConn = DriverManager.getConnection("jdbc:mysql://localhost:3306/customer", "root", "Gspot");
st = myConn.createStatement();
String query = "select * from customers";
rs = st.executeQuery(query);
while(rs.next()){
System.out.println(rs.getString("name"));
}
} catch(SQLException e){
e.printStackTrace();
} catch(ClassNotFoundException e) {
System.out.println("wow");
}
}
}
解决方法:
Class.forName创建与给定名称对应的java.lang.Class
的实例.这会强制类加载器加载此类,并在其静态块中执行任何代码.
较旧的JDBC驱动程序曾经使用这些静态块将自己注册到java.sql.DriverManager
,以便以后可以用它们连接到数据库. JDBC 4是Java 6的一部分,它引入了一种自动加载JDBC驱动程序的机制,因此不再需要它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。