Пример SQLite для Android [закрыт]

45

Я новичок в Android, и мне нужно создать приложение, где мне нужно использовать базу данных SQLite. Я не очень хорошо оборудован SQLite.

Не могли бы вы рассказать мне, что цель и использование класса SQLiteOpenHelper, и предоставить простой пример создания и ввода базы данных?

  • 2
    SQLite-учебник
  • 0
    Так много технологий. Я не успеваю вспомнить, что именно было, так что голосую.
Теги:
database
sqliteopenhelper

4 ответа

87
Лучший ответ

Класс помощников Sqlite помогает нам управлять созданием базы данных и управлением версиями. SQLiteOpenHelper заботится обо всех действиях по управлению базами данных. Чтобы использовать его,   
1.Override onCreate(), onUpgrade() методы SQLiteOpenHelper. Необязательно переопределить метод onOpen().   
2. Используйте этот подкласс для создания либо читаемой, либо записываемой базы данных и используйте четыре метода API SQLiteDatabase insert(), execSQL(), update(), delete() для создания, чтения, обновления и удаления строк вашей таблицы.

Пример создания таблицы MyEmployees и для выбора и вставки записей:

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "DBName";

    private static final int DATABASE_VERSION = 2;

    // Database creation sql statement
    private static final String DATABASE_CREATE = "create table MyEmployees
                                 ( _id integer primary key,name text not null);";

    public MyDatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    // Method is called during creation of the database
    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DATABASE_CREATE);
    }

    // Method is called during an upgrade of the database,
    @Override
    public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){
        Log.w(MyDatabaseHelper.class.getName(),
                         "Upgrading database from version " + oldVersion + " to "
                         + newVersion + ", which will destroy all old data");
        database.execSQL("DROP TABLE IF EXISTS MyEmployees");
        onCreate(database);
    }
}

Теперь вы можете использовать этот класс, как показано ниже,

public class MyDB{  

    private MyDatabaseHelper dbHelper;  

    private SQLiteDatabase database;  

    public final static String EMP_TABLE="MyEmployees"; // name of table 

    public final static String EMP_ID="_id"; // id value for employee
    public final static String EMP_NAME="name";  // name of employee

    /** 
     * 
     * @param context 
     */  
    public MyDB(Context context){  
        dbHelper = new MyDatabaseHelper(context);  
        database = dbHelper.getWritableDatabase();  
    }


    public long createRecords(String id, String name){  
        ContentValues values = new ContentValues();  
        values.put(EMP_ID, id);  
        values.put(EMP_NAME, name);  
        return database.insert(EMP_TABLE, null, values);  
    }    

    public Cursor selectRecords() {
        String[] cols = new String[] {EMP_ID, EMP_NAME};  
        Cursor mCursor = database.query(true, EMP_TABLE,cols,null  
            , null, null, null, null, null);  
        if (mCursor != null) {  
            mCursor.moveToFirst();  
        }  
        return mCursor; // iterate to get each value.
    }
}

Теперь вы можете использовать класс MyDB в своей деятельности, чтобы иметь все операции с базой данных. Созданные записи помогут вам вставить значения аналогично, вы можете иметь свои собственные функции для обновления и удаления.

  • 1
    Большое спасибо за предоставленную мне демонстрационную версию базы данных. Это действительно очень полезно и достаточно эффективно, чтобы ответить на мой связанный запрос. еще раз спасибо .. С уважением :)
  • 0
    @JJPA - использование SQLiteOpenHelper приводит к сбою приложения на Android 2.X с ошибкой CREATE TABLE android_metadata не работает ... отлично работает на 4.x + есть идеи, как решить эту проблему ??
Показать ещё 8 комментариев
11

Следующие ссылки помогут вам

1. База данных Android Sqlite

2. Учебное пособие 1

Класс помощника базы данных:

Вспомогательный класс для управления созданием базы данных и управлением версиями.

Вы создаете подкласс, реализующий onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) и необязательно onOpen(SQLiteDatabase), и этот класс заботится о том, чтобы открыть базу данных, если она существует, создавая ее, если это не так, и, при необходимости, обновляя ее. Транзакции используются, чтобы убедиться, что база данных всегда находится в разумном состоянии.

Этот класс упрощает реализацию ContentProvider для отсрочки открытия и обновления базы данных до ее первого использования, чтобы избежать блокировки запуска приложений при длительных обновлениях баз данных.

Вам нужно больше ссылаться на эту ссылку Sqlite Helper

  • 5
    tuturial_2 вне форума.
1

С помощью класса Helper вы можете получить доступ к базе данных SQLite и выполнять различные операции над ним, переопределяя методы onCreate() и onUpgrade().

1

Класс DBHelper - это то, что обрабатывает открытие и закрытие баз данных sqlite, а также создание и обновление, и достойная статья о том, как все это работает, здесь. Когда я начал андроид, это было очень полезно (однако я был objective-c в последнее время и забыл, что большинство из них будет использоваться.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню