2017-01-30 9 views
1

誰かが私を助けることができますか?java.sql.jdbc.SQLException:XAMPP MYSQLに接続するときに適切なドライバがありません

package com.TPK.SistemPendataanPelalatan; 


import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 



public class MainActivity extends Activity { 

    TextView ket; 
    EditText id_user,pass; 
    Button btnlogin; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_login); 

     //deklarasi input dan output 

     ket =(TextView) findViewById(R.id.warning_login); 
     id_user = (EditText) findViewById(R.id.singup_id); 
     pass = (EditText) findViewById(R.id.input_pass); 
     btnlogin = (Button) findViewById(R.id.login); 


    // event tombol ditekan 
    btnlogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      String id=id_user.getText().toString(); 
      String pw=pass.getText().toString(); 

      int salah=0;//hitung jumlah kesalahan 
      try { 
       Class.forName("com.mysql.jdbc.Driver"); 
      } catch (ClassNotFoundException e1) { 
       // TODO Auto-generated catch block 
       e1.printStackTrace(); 
      } 

      try { 

       Statement st=(Statement)hubung.GetConnection().createStatement(); 

       if(id_user.getText().toString().isEmpty()||pass.getText().toString().isEmpty()){ 
        ket.setText("ID dan Password Harus di Isi!"); 
       }else{ 
       ResultSet rs=st.executeQuery("select * from user where id='"+id+"'and password='"+pw+"'"); 
       if(rs.next()){ 
        //kalo sukses masuk 
        ket.setText("Selamat Datang ..."); 
        String nama=rs.getString(1); 
        if(rs.getString(5)=="1"){//ADMIN 
         Intent i = new Intent(MainActivity.this, activity_user_admin.class); 
         i.putExtra("nama", nama);//passing nama ke activity user admin 
         startActivity(i); 
         st.close(); 
        }else if(rs.getString(5)=="2"){//SUPERVISOR 
         Intent i = new Intent(MainActivity.this, activity_user_super.class); 
         i.putExtra("nama", nama);//passing nama ke activity user super 
         startActivity(i); 
         st.close(); 
        }else if(rs.getString(5)=="3"){//TEKNISI 
         Intent i = new Intent(MainActivity.this, activity_user_teknisi.class); 
         i.putExtra("nama", nama);//passing nama ke activity user teknisi 
         startActivity(i); 
         st.close(); 
        } 
       } 
       else { 
        ket.setText("ID atau Password Salah !"); 
        salah++; 
        if(salah>3){ 
         salah=0; 
         ket.setText("Silahkan Lapor Admin"); 
        } 

       } 
       } 

      } catch (SQLException e) { 
       // TODO Auto-generated catch block 
       ket.setText(e.toString()); 
      } 
     } 
    }); 
    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

} 

私は名前hubungでMySQLに接続するためにJDBCを呼び出すところ、これを:MainActivityため

enter image description here

このコード:私は、ログインボタンをクリックすると、下図のように、この種の例外を取得しalwayse:

package com.TPK.SistemPendataanPelalatan; 
import java.sql.*; 

public class hubung { 
    private static Connection kon; 
    public static Connection GetConnection() throws SQLException{ 
     if(kon==null){ 
     kon = DriverManager.getConnection("jdbc:mysql://10.11.1.232:3306/tpk_peralatan","root",""); 
     } 
     return kon; 

    } 
} 

おかげで...

NB:このプログラムはうまく構築され、実行できますが、mysql接続でスタックされています...

+1

推奨読書:http://stackoverflow.com/questions/15853367/jdbc-vs -web-service-for-android –

+0

すべてのスタックトレースを与える.... – ELITE

+0

libsフォルダに 'mysql-connector.jar'を追加するべきですが、mysql-connectorをndroid ... @MorrisonChangによる上記のコメントの読み取り – ELITE

答えて

0

こんにちはStevanus、 MorrisonとELITEの話は正しいです。 私はあなたがリモートのmysqlサーバに接続していると仮定します(つまり、Mysqlサーバはあなたのアンドロイドデバイスで実行されていません)。 Webサービスを使用してMySQL-のconnector.jar

を使用して

  • Webサービス(SOAPやREST)を使用して

    • を接続するための2つの方法があります。 これは、任意のデータベースに接続する方法をお勧めしますサーバ。 2つのステップでデータベースに接続します。あなたは、アプリケーションがデータベース・サーバと通信し、適切な応答を取得し、デバイスへの応答を送り返すの世話をする
    • サーバー側のアプリケーションをヒットするWebサービスを使用して

      1. 。ユーザーを作成する必要が1.Firstこのよう に接続しているときにだけポイント以下のアンドロイドdevice.Rememberからデータベース接続で遊んでいる場合は、このアプローチは、[OK]をMyql-のconnector.jar

        を使用して

      mysqlサーバでは、リモートマシンからMysqlサーバにアクセスする際にデバイスIPに言及することで、すでにそのユーザテーブルで利用可能なリモートマシンIPが必要です。 2.mysqlコネクタはクラスパスの下にjarします。

      これらのリンクを参照してください。

      1. http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/

      2. https://www.quora.com/How-can-I-connect-send-and-retrieve-data-between-an-Android-device-and-a-remote-PC-with-a-PHP-interface-when-I-use-MySQL-as-my-database

      3. https://www.youtube.com/watch?v=VM9wW3W22IE

      Regads、 アジャイ

  • 関連する問題