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

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

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


person Rushabh Chheda    schedule 18.08.2012    source источник
comment
sqlite-tutorial   -  person Lucifer    schedule 18.08.2012
comment
Так много технологий. У меня нет времени вспоминать, что именно это было, поэтому голосую.   -  person CodeToLife    schedule 03.06.2017


Ответы (4)


Вспомогательный класс Sqlite помогает нам управлять созданием базы данных и управлением версиями. SQLiteOpenHelper берет на себя все действия по управлению базой данных. Чтобы использовать его,
1.Переопределите 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 в своей деятельности, чтобы выполнять все операции с базой данных. Записи создания помогут вам вставить значения, так же вы можете иметь свои собственные функции для обновления и удаления.

person Vinay    schedule 18.08.2012
comment
Большое спасибо за предоставление мне демо-скелета базы данных. Это действительно очень полезно и достаточно эффективно, чтобы ответить на мой связанный запрос. еще раз спасибо .. С уважением :) - person Rushabh Chheda; 18.08.2012
comment
@JJPA - использование SQLiteOpenHelper приводит к сбою моего приложения на Android 2.X с ошибкой CREATE TABLE android_metadata failed ... отлично работает на 4.x + есть идеи, как решить эту проблему ?? - person user1492955; 15.07.2013
comment
@user1492955 Это может вам помочь. - person Vinay; 15.07.2013
comment
@JJPA - этот вопрос был опубликован мной, и я не получил ответов - person user1492955; 15.07.2013
comment
@user1492955 user1492955 Хорошо, позвольте мне взглянуть на это. - person Vinay; 15.07.2013
comment
@JJPA stackoverflow.com/questions/17641717/ - person user1492955; 15.07.2013
comment
Вот оболочка, которую я написал/использую, которая немного упрощает использование SQLite в контексте Android - SqlDb - person keios; 31.12.2013
comment
Возможно, вам следует использовать свои константы в операторе создания таблицы. - person PhilipB; 15.05.2017
comment
@PhilipB всегда есть способ оптимизировать код в зависимости от необходимости и дизайна :), и это всего лишь пример ... - person Vinay; 16.05.2017

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

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

2. Учебник 1

Вспомогательный класс базы данных:

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

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

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

Вам нужно больше, обратитесь по этой ссылке Sqlite Helper

person Aerrow    schedule 18.08.2012
comment
tuturial_2 сейчас не в сети. - person Pedro Lobito; 28.06.2013

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

person CBredlow    schedule 18.08.2012

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

http://technologyguid.com/android-sqlite-database-app-example/< /а>

person wosimosi    schedule 18.08.2012