簡體   English   中英

與JDBC的android。 createStatement()不存在嗎?

[英]android with JDBC. createStatement() does not exist?

我試圖在我的android項目上使用JDBC創建與數據庫的連接。 我正在遵循一個教程,該教程說要導入一個jar,然后在活動中創建一個連接。 一切正常,但是在連接語句中出現錯誤

無法解析方法“ createStatement()”

如果我嘗試進入該方法的參考,它說

找不到要去的地方

這種方法來自我進口的罐子嗎? (jtds-1.3.1)我在這里還想念什么嗎?

 @Override
    protected String doInBackground(String... params)
    {
        Connection con;
        String usernam = params[0];
        String passwordd = params[1];
        if(usernam.trim().equals("")|| passwordd.trim().equals(""))
            z = "Please enter Username and Password";
        else
        {
            try
            {
                con = connectionclass(un, pass, db, ip);        // Connect to database
                if (con == null)
                {
                    z = "Check Your Internet Access!";
                }
                else
                {
                    // Change below query according to your own database.
                    String query = "select * from owner where mail = '" + usernam.toString() + "' and password = '"+ passwordd.toString() +"'  ";
                    Statement stmt = con.createStatement();
                    ResultSet rs = stmt.executeQuery(query);
                    if(rs.next())
                    {
                        z = "Login successful";
                        isSuccess=true;
                        con.close();
                    }
                    else
                    {
                        z = "Invalid Credentials!";
                        isSuccess = false;
                    }
                }
            }
            catch (Exception ex)
            {
                isSuccess = false;
                z = ex.getMessage();
            }
        }
        return z;
    }
}


@SuppressLint("NewApi")
public Connection connectionclass(String user, String password, String database, String server)
{
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    Connection connection = null;
    String ConnectionURL = null;
    try
    {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        ConnectionURL = "jdbc:jtds:sqlserver://" + server + database + ";user=" + user+ ";password=" + password + ";";
        connection = (Connection) DriverManager.getConnection(ConnectionURL);
    }
    catch (SQLException se)
    {
        Log.e("error here 1 : ", se.getMessage());
    }
    catch (ClassNotFoundException e)
    {
        Log.e("error here 2 : ", e.getMessage());
    }
    catch (Exception e)
    {
        Log.e("error here 3 : ", e.getMessage());
    }
    return connection;
}

我在close()方法中遇到了同樣的問題 這是截圖

您要做的就是完全指定類名稱:

java.sql.Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/product","root","");

不需要強制轉換,並且您報告的錯誤現在將消失,因為編譯器將在正確的類中尋找方法。

或者只是重命名自己的類Connection

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM