//это мой DatabaseHelper.java
CREATE_USER_TABLE = "CREATE TABLE" + TABLE_USER + "(" + COLUMN_USER_ID + "INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_USER_NAME + "TEXT," + COLUMN_USER_EMAIL + "TEXT," + COLUMN_USER_PASSWORD + "TEXT," + ")";
private String DROP_USER_TABLE = "DROP TABLE IF EXISTS" + TABLE_USER;
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_USER_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DROP_USER_TABLE);
onCreate(db);
}
public void addUser(User user) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_USER_NAME, user.getName());
values.put(COLUMN_USER_EMAIL, user.getEmail());
values.put(COLUMN_USER_PASSWORD, user.getPassword());
db.insert(TABLE_USER, null, values);
db.close();
}
public boolean checkUser(String email, String password) {
String[] columns = {
COLUMN_USER_ID
};
SQLiteDatabase db = this.getWritableDatabase();
String selection = COLUMN_USER_EMAIL + " = ?" + " AND " + COLUMN_USER_PASSWORD + "=?";
String[] selectionArgs = {email,password};
Cursor cursor = db.query(TABLE_USER,
columns,
selection,
selectionArgs,
null,
null,
null);
int cursorCount = cursor.getCount();
cursor.close();
db.close();
if (cursorCount > 0){
return true;
}
return false;
}`
Вы не сообщаете, что это за ошибка, но, глядя на ваш код, я вижу одну серьезную проблему.
Что нужно иметь в виду, так это то, что SQLite полагается на соответствующие пробелы в своих операторах. Итак, ваше утверждение
CREATE_USER_TABLE = "CREATE TABLE" + TABLE_USER + "(" +
COLUMN_USER_ID + "INTEGER PRIMARY KEY AUTOINCREMENT," + COLUMN_USER_NAME + "TEXT," + COLUMN_USER_EMAIL + "TEXT," + COLUMN_USER_PASSWORD + "TEXT," + ")";
переведет на что-то вроде
CREATE user_table useridINTEGER PRIMARY KEY AUTOINCREMENT,user_nameTEXTuser_emailTEXT,user_passwordTEXT,)
Видите проблему? Пространства не там, где они должны быть. Вам нужно будет создать примерно такое заявление:
CREATE user_table, userid INTEGER PRIMARY KEY AUTOINCREMENT,user_name TEXT, user_email TEXT, user_password TEXT
чтобы пробелы вставлялись правильно.
Сделайте логарифмическую печать, чтобы увидеть заявление, которое вы создаете, чтобы вы могли внести коррективы.
Вы изучали компонент архитектуры Android Room? Вот ссылка на Room: developer.android.com/topic/libraries/architecture/room Эта библиотека сохраняемости Room построена на SQLite и позволяет очень легко превращать ваши классы в таблицы для SQLite. Он также может генерировать множество необходимых инструкций SQL от вашего имени, что делает его простым и безошибочным. Попробуйте. Вот официальное видео об этом: youtube.com/watch?v=SKWh4ckvFPM