2017-05-08 3 views
0

私のアンドロイドプロジェクトでJDBCを使用してデータベースとの接続を作成しようとしています。私はjarをインポートして、アクティビティで接続を作成するというチュートリアルに従っています。私は方法の参照に取得しようとした場合アンドロイドcreateStatement()は存在しませんか?

「)のcreateStatement(」すべてはOKですが、接続文の中で、私はエラー

は、メソッドを解決できません取得し、それは

語ります

にこの方法を行くためにdeclerationを見つけることができない私は、インポートしたjarファイルから来ていますか? (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; 
} 

私はあなたがするんだすべてが完全クラス名を指定しないで Here is a screenshot

+0

独自のConnectionクラスはありますか? – Aryan

+0

ええ、私が投稿したこのコードは接続クラスの中にあります。 – Kzaf

答えて

2

close()方法と同じ問題を抱えて:

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

キャストのために不要にし、コンパイラが正しいクラスのメソッドを探しているので、あなたが報告しているエラーはなくなります。

または、自分のクラス名をConnectionに変更してください。

+1

接続からキャストを削除し、メソッドの型をjava.sql.Connectionに変更すると、エラーはなくなります。ありがとう! – Kzaf

関連する問題