首页 > 解决方案 > 在数据库连接中,Class.forName 做什么?

问题描述

我在教程中看到使用“Class.forName”。请让我知道它的作用,以及此代码是否可以正常工作?

 public class Conexao {
    String ip = "ip";
    String class = "net.sourceforge.jtds.jdbc.Driver";
    String bd = "nomeBD";
    String username = "UserName";
    String password = "password";

    @SuppressLint("NewApi")
    public Connection CONN() {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Connection conn = null;
        String ConnURL;
        try {
            Class.forName(class);
            ConnURL = "jdbc:jtds:sqlserver://" + ip + ";" + "databaseName=" + bd + ";user=" + username + ";password=" + password + ";";
            conn = DriverManager.getConnection(ConnURL);
        } catch (SQLException se) {
            Log.e("ERROR", se.getMessage());
        } catch (Exception e) {
            Log.e("ERROR", e.getMessage());
        }
        return conn;
    }
}

标签: javaandroidsql-server

解决方案


看不到错误信息,可能是格式不正确。通常我会写:

String url = "jdbc:mysql://localhost:3306/samp_db";
...
DriverManager.getConnection(url, username, password);
....

推荐阅读