@Helig

Как работать с базой данных в Android?

Я написал код на Java, для подключения к базе данных и дальнейшей работы с ней, но когда я внедрил код в андроид приложение он перестало работать. Я использовал библиотеки java.sql.* встроенные в Android Studio, но при загрузке приложения ничего не работает(Когда я запускал код в eclipse всё работало) думаю, что ошибка не в коде, а с сетевыми настройками Android, но всё же прошу взглянуть.

Вот код:
public class MainActivity extends AppCompatActivity {

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


    }

   //По нажатию кнопки
    public void onAuthoR(View v) {
        loginUser("Danon", "12345");
    }

    private void loginUser(String loginTxt, String passTxt) {
        TextView textView1 = (TextView)findViewById(R.id.textview);
        DatabaseHandler dbHandler = new DatabaseHandler();
        User user = new User();
        user.setUserName(loginTxt);
        user.setPassword(passTxt);
        ResultSet result = dbHandler.getUser(user);
        int counter = 0;

        try {
            while(result.next()) {
                counter++;

            }
        } catch (SQLException e) {
            e.printStackTrace();
        }

        if (counter == 1) {

            textView1.setText("Success");
            System.out.println("Success!");

        }else {
            System.out.println("ERORE: not find user with this login and password");
            textView1.setText("ERORE: not find user with this login and password");
        }

    }
}


public class DatabaseHandler  extends Configs  {
    Connection dbConnection;

    public Connection getDbConnection()
            throws ClassNotFoundException, SQLException {
        String connectionString = "jdbc:mysql://" + dbHost + ":"
                + dbPort + "/" + dbName + "?" +
                "useUnicode=true&useSSL=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

        Class.forName("com.mysql.jdbc.Driver");

        dbConnection = DriverManager.getConnection(connectionString, dbUser, dbPass);

        return dbConnection;
    }
    
    public ResultSet getUser(User user) {
        ResultSet resSet = null;

        String select = "SELECT * FROM " + Const.USER_TABLE +
                " WHERE " + Const.USER_USERNAME + "=? AND " + Const.USER_PASSWORD + "=?";

        try {
            PreparedStatement prSt = getDbConnection().prepareStatement(select);
            prSt.setString(1, user.getUserName());
            prSt.setString(2, user.getPassword());


            resSet = prSt.executeQuery();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return resSet;
    }

}


public class Const {
    public static final String USER_TABLE = "users";

    public static final String USER_ID = "idusers";
    public static final String USER_FIRSTNAME = "firstName";
    public static final String USER_LASTNAME = "lastName";
    public static final String USER_USERNAME = "userName";
    public static final String USER_PASSWORD = "password";
    public static final String USER_LOCATION = "location";
    public static final String USER_GENDER = "gender";

}


public class Configs {
    protected String dbHost = "localhost";
    protected String dbPort = "3306";
    protected String dbUser = "root";
    protected String dbPass = "";
    protected String dbName = "RegularBase";
    protected String dada = null;
}


public class User {

    private String firstName;
    private String lastName;
    private String userName;
    private String password;
    private String location;
    private String gender;

    public User(String firstName, String lastName, String userName,
                String password, String location, String gender) {
        this.firstName = firstName;
        this.lastName = lastName;
        this.userName = userName;
        this.password = password;
        this.location = location;
        this.gender = gender;
    }

    public User() {}


    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getLocation() {
        return location;
    }

    public void setLocation(String location) {
        this.location = location;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

}


Я хочу реализовать в конечном итоге авторизацию и регистрацию людей в приложении. Посоветуйте, пожалуйста, что еще нужно кроме подключения. Я думал сделать всё это с помощью php скриптов, но Java приятнее.
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 1
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
С удалённой базой данных нужно работать через API. А то, что вы делаете, это какая-то дичь.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы