1

I've been sitting with this problem for 2 weeks now and I hope 1 of you can help me with this.

The following code I have for connecting with out database.

    package com.example.sunapp;

import android.annotation.SuppressLint;
import android.os.StrictMode;
import android.util.Log;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConnectionClass {
    String ip = "xxx.xxx.xxx.xxx";
    String classs = "net.sourgeforge.jtds.jdbc.Driver";
    String db = "xxxx";
    String un = "xxxx";
    String password = "xxxx";


    @SuppressLint("NewApi")
    public Connection CONN() {
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
                .permitAll().build();
        StrictMode.setThreadPolicy(policy);
        Connection conn = null;
        String ConnURL = null;
        try {

            Class.forName(classs);
            ConnURL = "jdbc:jtds:sqlserver://" + ip + ";"
                    + "databaseName=" + db + ";user=" + un + ";password="
                    + password + ";";
            conn = DriverManager.getConnection(ConnURL);
        } catch (SQLException se) {
            Log.e("ERRO1", se.getMessage());
        } catch (ClassNotFoundException e) {
            Log.e("ERRO2", e.getMessage());
        } catch (Exception e) {
            Log.e("ERRO3", e.getMessage());
        }
        return conn;
    }
}

When I hit 'Inloggen' I get the following error

"02-19 15:15:02.679 8488-10423/com.example.sunapp E/ERRO2: net.sourgeforge.jtds.jdbc.Driver"

Below the code of the login activity of the application

    package com.example.sunapp;

import android.content.Intent;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.CardView;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.os.AsyncTask;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

public class LoginActivity extends AppCompatActivity {

    //Declaring connection
    ConnectionClass connectionClass;
    EditText etGebruikersnaam, etWachtwoord;
    CardView cvInloggen;

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

        ActionBar actionBar = getSupportActionBar();
        assert actionBar != null;
        actionBar.hide();

        connectionClass = new ConnectionClass();
        final EditText etGebruikersnaam = findViewById(R.id.etGebruikersnaam);
        final EditText etWachtwoord = findViewById(R.id.etWachtwoord);
        final CardView cvInloggen = findViewById(R.id.cvInloggen);
        final TextView RegistreerLink = findViewById(R.id.tvRegistreren);

        RegistreerLink.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent registreerIntent = new Intent(LoginActivity.this, RegistryActivity.class);
                LoginActivity.this.startActivity(registreerIntent);
            }
        });

        cvInloggen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DoLogin doLogin = new DoLogin();
                doLogin.execute("");

            }
        });
    }

    public class DoLogin extends AsyncTask<String,String,String>
    {
        String z = "";
        Boolean isSucces = false;

        final EditText etGebruikersnaam = findViewById(R.id.etGebruikersnaam);
        final EditText etWachtwoord = findViewById(R.id.etWachtwoord);
        String userid = etGebruikersnaam.getText().toString();
        String password = etWachtwoord.getText().toString();

        @Override
        protected  String doInBackground(String... params) {
            if(userid.trim().equals("")|| password.trim().equals(""))
                z = "Vul hier uw gebruikersnaam en wachtwoord in";
            else
            {
                try {
                    Connection con = connectionClass.CONN();
                    if (con == null) {
                        String query = "select * from compose.tblGebruikers where Gebruikersnaam='" + userid + "' and Wachtwoord='" + password + "'";
                        Statement stmt = con.createStatement();
                        ResultSet rs = stmt.executeQuery(query);

                        if (rs.next())
                        {
                            z = "Login succesfull";
                            isSucces = true;
                        }
                        else
                        {
                            z = "Invalid Credentials";
                            isSucces = false;
                        }
                    }
                }
                catch (Exception ex)
                {
                    isSucces = false;
                    z = "Exceptions";
                }
            }
            return z;
        }

    }
}

I must be doing something wrong but, what is the question. the message I'm getting comes from the classnotfoundexception. I still not managed to make it work.

Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
Bellie
  • 17
  • 1
  • 3
  • Why the mysql tag? why you want to connect to a SQL-Server directly from an android app? – Jens Feb 19 '18 at 14:34
  • For login purposes. Any suggestions for something else are welcome. I'm new to android and login purposes. – Bellie Feb 19 '18 at 14:39
  • 1
    if you Need a local database on the Smartphone you should use sqlite else you have to wrte a backend Service with an JSON/REST API which will called by your app – Jens Feb 19 '18 at 14:40
  • Related: https://stackoverflow.com/questions/26470117/can-we-connect-remote-mysql-database-in-android-using-jdbc – Mark Rotteveel Feb 19 '18 at 14:53

0 Answers0