微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Android Studio + Java JDBC找不到合适的驱动程序并显示许多其他错误

如何解决Android Studio + Java JDBC找不到合适的驱动程序并显示许多其他错误

在使用当前使用 MAMP 的本地服务器测试我的登录表单时,当我尝试进行登录测试时,总是遇到以下错误

    W/System.err: java.sql.sqlException: No suitable driver found for jbdc:MysqL://localhost/PHPMyAdmin/diplomanya
    W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:605)
    W/System.err:     at java.sql.DriverManager.getConnection(DriverManager.java:218)
            at fr.ibra_yous.diplomany_v00001.ConnectBdd.ConnexionsqlBdd(ConnectBdd.java:20)
            at fr.ibra_yous.diplomany_v00001.Log_in.Connect(Log_in.java:57)
            at fr.ibra_yous.diplomany_v00001.Log_in.access$000(Log_in.java:15)
            at fr.ibra_yous.diplomany_v00001.Log_in$1.onClick(Log_in.java:34)
            at android.view.View.performClick(View.java:7448)
            at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
            at android.view.View.performClickInternal(View.java:7425)
            at android.view.View.access$3600(View.java:810)
            at android.view.View$PerformClick.run(View.java:28305)
    W/System.err:     at android.os.Handler.handleCallback(Handler.java:938)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:223)
            at android.app.ActivityThread.main(ActivityThread.java:7656)
            at java.lang.reflect.Method.invoke(Native Method)
    W/System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
    W/System.err: java.lang.NullPointerException: Attempt to invoke interface method 'java.sql.ResultSet java.sql.Statement.executeQuery(java.lang.String)' on a null object reference
    W/System.err:     at fr.ibra_yous.diplomany_v00001.Log_in.Connect(Log_in.java:61)
            at fr.ibra_yous.diplomany_v00001.Log_in.access$000(Log_in.java:15)
            at fr.ibra_yous.diplomany_v00001.Log_in$1.onClick(Log_in.java:34)
            at android.view.View.performClick(View.java:7448)
            at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1119)
            at android.view.View.performClickInternal(View.java:7425)
            at android.view.View.access$3600(View.java:810)
    W/System.err:     at android.view.View$PerformClick.run(View.java:28305)
            at android.os.Handler.handleCallback(Handler.java:938)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:223)
            at android.app.ActivityThread.main(ActivityThread.java:7656)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)

我是 Android Studio 和 Java 的新手,因此我对它们的含义一无所知,所以我想请求一些帮助,以便我能够理解而不是重新犯导致我犯这些错误错误错误,因为我必须制作一个注册表。

我不知道我是否应该联合所有相关代码,这些代码是包含我的登录表单的 log_inactivity,我添加了这一行的清单文件

`<uses-permission android:name="android.permission.INTERNET" />`

这里是允许连接到 dbb 的类代码

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.sqlException;
    import java.sql.Statement;
    
    public class ConnectBdd {
    
        public static String Driverjbdc = "com.MysqL.cj.jdbc.Driver";
        public static String url = "jbdc:MysqL://localhost/PHPMyAdmin/diplomanya";
        public static String password = "root";
        public static String user = "root";
    
        public static Statement ConnexionsqlBdd() {
    
            try {
                Class.forName(Driverjbdc);
                Connection conn = DriverManager.getConnection(url,user,password);
                Statement stmt = conn.createStatement();
                return stmt;
    
            } catch(sqlException e){
                e.printstacktrace();
                return null;
    
            } catch(Exception e){
                e.printstacktrace();
                return null;
            }
    
        }
    }
    ``` 
    The log in code : 
    ``` 
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Intent;
    import android.os.Bundle;
    import android.os.StrictMode;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class Log_in extends AppCompatActivity {
    
        private EditText inIdInput,inPasswordInput;
        private Button logButton,singInBtn;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_log_in);
    
            inIdInput = this.findViewById(R.id.id_champ);
            inPasswordInput = this.findViewById(R.id.id_pass_champ);
            logButton = this.findViewById(R.id.id_log_button);
            singInBtn = this.findViewById(R.id.id_singIn_button);
    
    
            logButton.setonClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    Connect();
                }
            });
    
            singInBtn.setonClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent singInActivityIntent = new Intent(Log_in.this,Sing_in.class );
                    startActivity(singInActivityIntent);
                }
            });
    
            if (android.os.Build.VERSION.SDK_INT > 9 ){
                StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
                StrictMode.setThreadPolicy(policy);
            }
    
        }
    
        private void Connect() {
            try{
                ConnectBdd connBdd = new ConnectBdd();
                Statement stmt = connBdd.ConnexionsqlBdd();
    
                String Request = "SELECT password_user FROM users WHERE mail_user = "+inIdInput.getText().toString()+"";
    
                final ResultSet rs = stmt.executeQuery(Request);
                if (rs.getString(1).equals(inPasswordInput.getText().toString())){
                    NextActivity();
                }
    
            }catch(Exception e){
                e.printstacktrace();
            }
        }
    
        private void NextActivity() {
            Intent redirect = new Intent(Log_in.this,MainActivity.class);
            startActivity(redirect);
            finish();
        }
    }
    ``` 

I really need help. Thank you.

解决方法

您得到 SQLException 的原因是 JDBC 不是为与移动设备一起使用而开发和设计的。不幸的是,Android 甚至没有 MYSQL JDBC driver

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。