微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – Class.forName()[复制]是什么意思

参见英文答案 > 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] 举报,一经查实,本站将立刻删除。

相关推荐