it-roy-ru.com

android Studio извлекает данные из базы данных Sqlite и отображает их в виде текста

Привет, ребята, пожалуйста, мне нужна ваша помощь. Я создаю базу данных SQLite в своем приложении и вставляю в нее данные. И теперь я хочу получить данные из него, но я хочу просто вставить одну информацию и извлечь ее, а затем отобразить ее в TextView.

пожалуйста, помогите мне, ребята, я впервые использую базу данных SQLite. 

public class Db_sqlit extends SQLiteOpenHelper{

    String TABLE_NAME = "BallsTable";

    public final static String name = "db_data";

    public Db_sqlit(Context context) {
        super(context, name, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table "+TABLE_NAME+" (id INTEGER PRIMARY KEY AUTOINCREMENT, ball TEXT)");

    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME);
        onCreate(db);
    }

    public boolean insertData(String balls){
      SQLiteDatabase db = this.getWritableDatabase();
      ContentValues contentValues = new ContentValues();

      contentValues.put("ball",balls);

      long result = db.insert(TABLE_NAME,null,contentValues);
      if(result == -1){
          return false;
      }
      else
          return true;
    }

    public void list_balls(TextView textView) {

        Cursor res = this.getReadableDatabase().rawQuery("select ball from "+TABLE_NAME+"",null);
        textView.setText("");
        while (res.moveToNext()){
            textView.append(res.getString(1));
        }  
    }
}
2
Ra Isse

Вот пример того, как я этого достиг.

В этом примере я буду store, retrieve, update и delete имя и возраст ученика.

Сначала создайте класс, я назвал мой 

DBManager.Java

public class DBManager {
private Context context;
private SQLiteDatabase database;
private SQLiteHelper dbHelper;

public DBManager(Context c) {
    this.context = c;
}

public DBManager open() throws SQLException {
    this.dbHelper = new SQLiteHelper(this.context);
    this.database = this.dbHelper.getWritableDatabase();
    return this;
}

public void close() {
    this.dbHelper.close();
}

public void insert(String name, String desc) {
    ContentValues contentValue = new ContentValues();
    contentValue.put(SQLiteHelper.NAME, name);
    contentValue.put(SQLiteHelper.AGE, desc);
    this.database.insert(SQLiteHelper.TABLE_NAME_STUDENT, null, contentValue);
}


public Cursor fetch() {
    Cursor cursor = this.database.query(SQLiteHelper.TABLE_NAME_STUDENT, new String[]{SQLiteHelper._ID, SQLiteHelper.NAME, SQLiteHelper.AGE}, null, null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
    }
    return cursor;
}

public int update(long _id, String name, String desc) {
    ContentValues contentValues = new ContentValues();
    contentValues.put(SQLiteHelper.NAME, name);
    contentValues.put(SQLiteHelper.AGE, desc);
    return this.database.update(SQLiteHelper.TABLE_NAME_STUDENT, contentValues, "_id = " + _id, null);
}

public void delete(long _id) {
    this.database.delete(SQLiteHelper.TABLE_NAME_STUDENT, "_id=" + _id, null);
    }
}

Затем создайте SQLiteOpenHelper я назвал мой

SQLiteHelper.Java

public class SQLiteHelper extends SQLiteOpenHelper {
public static final String AGE = "age";
private static final String CREATE_TABLE_STUDENT = " create table STUDENTS ( _id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL , age TEXT );";
private static final String DB_NAME = "STUDENTS.DB";
private static final int DB_VERSION = 1;
public static final String NAME = "name";
public static final String TABLE_NAME_STUDENT = "STUDENTS";
public static final String _ID = "_id";

public SQLiteHelper(Context context) {
    super(context, DB_NAME, null, 1);
}

public void onCreate(SQLiteDatabase db) {
    Log.e("SQLITE", "table reated");
    db.execSQL(CREATE_TABLE_STUDENT);
}

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    db.execSQL("DROP TABLE IF EXISTS STUDENTS");
    onCreate(db);
}

}

ДОБАВИТЬ:

В этом примере я беру текст из EditText и при нажатии кнопки я проверяю, является ли EditText пустым или нет. Если он не пустой и ученик еще не существует, я вставляю имя и возраст ученика в базу данных. Я отображаю Toast, сообщая пользователю о статусе:

btnAdd.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            if (edtName.getText().toString().trim().length() == 0) {
                Toast.makeText(getApplicationContext(), "Please provide your students name", Toast.LENGTH_SHORT).show();

            } else
                try {
                    if (edtAge.getText().toString().trim().length() != 0) {

                        String name = edtName.getText().toString().trim();
                        String age = edtAge.getText().toString().trim();
                        String query = "Select * From STUDENTS where name = '"+name+"'";
                        if(dbManager.fetch().getCount()>0){
                            Toast.makeText(getApplicationContext(), "Already Exist!", Toast.LENGTH_SHORT).show();
                        }else{
                            dbManager.insert(name, age);

                            Toast.makeText(getApplicationContext(), "Added successfully!", Toast.LENGTH_SHORT).show();

                        }

                    } else {

                        Toast.makeText(getApplicationContext(), "please provide student age!", Toast.LENGTH_SHORT).show();


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


        }
    });

Обновление:

Здесь я беру текст в EditText и обновляю студента при нажатии кнопки. Вы также можете поместить следующее в try/catch, чтобы убедиться, что оно успешно обновлено.

btnupdate.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View view) {
            String name = nameText.getText().toString();
            String age = ageText.getText().toString();

            dbManager.update(_id, name, age);
            Toast.makeText(getApplicationContext(), "Updated successfully!", Toast.LENGTH_SHORT).show();


        }
    });

УДАЛИТЬ:

dbManager.delete(_id);
Toast.makeText(getApplicationContext(), "Deleted successfully!", Toast.LENGTH_SHORT).show();

ПОЛУЧИТЬ:

Здесь я получаю имя студента и отображаю его в TextView

DBManager dbManager = new DBManager(getActivity());
dbManager.open();

Cursor cursor = dbManager.fetch();
cursor.moveToFirst();
final TextView studentName = (TextView) getActivity().findViewById(R.id.nameOfStudent);
studentName.settext(cursor.getString(0));
6
HB.