java.sql.jdbc.SQLException:连接到XAMPP MYSQL时没有合适的驱动程序

时间:2017-01-30 04:21:48

标签: java android mysql eclipse jdbc

有人能帮帮我吗?当我点击登录按钮时,我总是得到这种例外情况,如下图所示:

enter image description here

MainActivity的代码:

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);
    }

}

这里我调用jdbc连接到名为hubung的mysql:

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;

    }
}

谢谢......

注意:这个程序可以构建并运行良好,但卡在mysql连接中......

1 个答案:

答案 0 :(得分:0)

嗨Stevanus,              莫里森和埃利特所说的是对的。 我假设您正在连接到远程mysql服务器(我的意思是,Mysql服务器没有在您的Android设备上运行)。 有两种连接方式

  • 使用Web服务(SOAP或REST)
  • 使用mysql-connector.jar

使用网络服务:                     这是连接到任何数据库服务器的推荐方法。 在这里,您将分两步连接到数据库。

  1. 使用Web服务,您将点击服务器端应用程序
  2. 应用程序将负责与数据库服务器通信并获取相应的响应并将响应发送回设备。
  3. 使用Myql-connector.jar

    这种方法没问题,如果你只是在玩Android设备的数据库连接。请按照这种方式连接以下点 1.首先你必须在mysql服务器中创建一个用户,通过提及你的设备IP,因为你将从远程机器访问Mysql Server,它需要远程机器IP,它已经在其用户表中可用。 类路径下的2.mysql-connector 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, 阿贾伊