Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Java Мобильная разработка (Android)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2016, 19:46   #1
JanCover
Новичок
Джуниор
 
Регистрация: 09.03.2016
Сообщений: 10
По умолчанию Проверка введённого логина и пароля по подключённой базе данных ms sql

Всем привет =)
Такая проблема
Есть база данных MS SQL, в которой записаны какие-то данные (столбцы логинов и паролей)
Мне нужно сделать прожину на андроиде, где я буду вводить логин и пароль, а она будет обращаться к базе данных и смотреть есть такой логин и соответствует ему этот пароль, затем если есть и всё гуд, то переходить на другое окно, если нет, то выводить сообщение по типу "Сударь, да вы херню ляпнули -_-"
Зачем пишу сюда
Есть таблица, создал, сделал оболочку приложения, накидал всего и вроде как написал код подключения, да вот только не очень и хочет всё это работать, то ли не подключается, то ли я не ту инфу на нашёл =/
Подскажите кто чем может
Кто инфу нужную, кто примерчик =)

Вот код подключения
Код:
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 = "192.168.1.4";
    String classs = "net.sourceforge.jtds.jdbc.Driver";
    String db = "DBProv";
    String un = "user";
    String password = "pass";
 
 
    @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("ERRO", se.getMessage());
        } catch (ClassNotFoundException e) {
            Log.e("ERRO", e.getMessage());
        } catch (Exception e) {
            Log.e("ERRO", e.getMessage());
        }
        return conn;
    }
}
Вот код приложения
Код:
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.Toast;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class MainActivity extends Activity
{
    ConnectionClass connectionClass;
    EditText edtuserid,edtpass;
    Button btnlogin;
    ProgressBar pbbar;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        connectionClass = new ConnectionClass();
        edtuserid = (EditText) findViewById(R.id.et_username);
        edtpass = (EditText) findViewById(R.id.et_password);
        btnlogin = (Button) findViewById(R.id.btn_Login);
        pbbar = (ProgressBar) findViewById(R.id.pbbar);
        pbbar.setVisibility(View.GONE);
 
        btnlogin.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 isSuccess = false;
 
 
        String userid = edtuserid.getText().toString();
        String password = edtpass.getText().toString();
 
 
        @Override
        protected void onPreExecute() {
            pbbar.setVisibility(View.VISIBLE);
        }
 
        @Override
        protected void onPostExecute(String r) {
            pbbar.setVisibility(View.GONE);
            Toast.makeText(MainActivity.this,r,Toast.LENGTH_SHORT).show();
 
            if(isSuccess) {
                Toast.makeText(MainActivity.this,r,Toast.LENGTH_SHORT).show();
            }
 
        }
 
        @Override
        protected String doInBackground(String... params) {
            if(userid.trim().equals("")|| password.trim().equals(""))
                z = "Please enter User Id and Password";
            else
            {
                try {
                    Connection con = connectionClass.CONN();
                    if (con == null) {
                        z = "Error in connection with SQL server";
                    } else {
                        String query = "select * from pathologic_app_users where username='" + userid + "' and password='" + password + "'";
                        Statement stmt = con.createStatement();
                        ResultSet rs = stmt.executeQuery(query);
 
                        if(rs.next())
                        {
 
                            z = "Login successfull";
                            isSuccess=true;
                        }
                        else
                        {
                            z = "Invalid Credentials";
                            isSuccess = false;
                        }
 
                    }
                }
                catch (Exception ex)
                {
                    isSuccess = false;
                    z = "Exceptions";
                }
            }
            return z;
        }
    }
}
JanCover вне форума Ответить с цитированием
Старый 22.10.2016, 19:33   #2
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
По умолчанию

Я думаю что более правильным вариантом будет если вы сначала сделаете подключение к своим PHP скриптам на сервере, а затем с помощью JSON уже извлекать все необходимые данные из БД. Юзайте HttpUrlConnection() и JSON
sergei0194 вне форума Ответить с цитированием
Старый 22.10.2016, 19:35   #3
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

http://programmersforum.ru/showthread.php?t=298319
Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну все равно вам наверно придется сделать HTTP сервис типа как в примере выше вместо прямого обращения к БД. Как минимум для безопасности.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.10.2016, 19:39   #4
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
По умолчанию

А разве вообще кто-нибудь делает запросы с приложения на прямую в БД?
sergei0194 вне форума Ответить с цитированием
Старый 22.10.2016, 19:45   #5
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну автор хочет же.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 22.10.2016, 21:13   #6
sergei0194
Новичок
Джуниор
 
Регистрация: 22.10.2016
Сообщений: 17
По умолчанию

Автор, юзай вот этот мой топик, я так понимаю там все ответы на все твои вопросы в общем
sergei0194 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение логина и пароля sergei92 C++ Builder 3 01.09.2015 12:58
Проверка логина и пароля Ardarik БД в Delphi 7 02.03.2013 16:20
Ввод логина и пароля Glamur1k Microsoft Office Excel 1 12.05.2011 17:47
смена пароля в базе данных на delphi !! 6666 БД в Delphi 3 10.04.2011 22:20
Проверка парроля с помошью SQL запроса в базе. iria Помощь студентам 1 11.11.2010 13:14