В качестве БД android использует встраиваемую SQLite. SQLite очень быстрая база, поэтому ее использование на мобильной платформе не приводит к резкому уменьшению производительности. Перейдем к описанию кода. Гугл позаботился о наших нервах и написал небольшой класс утилиту SQLiteOpenHelper.
При создании экземпляра класса DbOpenHelper будет проверено, существует ли база с именем test, если существует, то будет вызван метод onUpgrade, если нет то onCreate в котором мы создаем таблицу users(обычно в этом методе создают таблицы и инициализируют их значениями по умолчанию). У класса SQLiteOpenHelper есть методы getReadableDatabase и getWritableDatabase, которые возвращают экземпляр класса SQLiteDatabase. С помощью этого экземпляра мы и будет работать с БД. У него есть все нужные нам методы: insert, update, query, delete и тд.
Напишем небольшое приложение сохраняющее логин и пароль в базу
В примере у нас есть окно в котором два поля ввода и кнопка, а по нажатию кнопки происходит сохранение. Вначале мы создаем экземляр класса DbOpenHelper, который создает саму базу и таблицы. Затем получаем объект SQLiteDatabase, методом insert которого будет происходить запись. ContentValues это некая обертка над данными, которые будут записаны в бд. В методе put первым аргументом является имя столбца, а вторым сами данные которые будут записаны в столбец, на языке SQL это выглядит так:
INSERT INTO users ( 'login','passw') VALUES ('somelogin','somepass')
Источник: http://habrahabr.ru/
public class DbOpenHelper extends SQLiteOpenHelper{
private static final int DB_VERSION = 1;
private static final String DB_NAME = "test";
public static final String TABLE_NAME = "users";
public static final String LOGIN = "login";
public static final String PASSW = "passw";
private static final String CREATE_TABLE = "create table " + TABLE_NAME + " ( _id integer primary key autoincrement, "
+ LOGIN + " TEXT, " + PASSW + " TEXT)";
public DbOpenHelper(Context context) {
super(context, DB_NAME, null,DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
* This source code was highlighted with Source Code Highlighter.
При создании экземпляра класса DbOpenHelper будет проверено, существует ли база с именем test, если существует, то будет вызван метод onUpgrade, если нет то onCreate в котором мы создаем таблицу users(обычно в этом методе создают таблицы и инициализируют их значениями по умолчанию). У класса SQLiteOpenHelper есть методы getReadableDatabase и getWritableDatabase, которые возвращают экземпляр класса SQLiteDatabase. С помощью этого экземпляра мы и будет работать с БД. У него есть все нужные нам методы: insert, update, query, delete и тд.
Напишем небольшое приложение сохраняющее логин и пароль в базу
public class TestActivity extends Activity {
EditText loginEditText = null;
EditText passEditText = null;
Button saveButton = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loginEditText = (EditText) findViewById(R.id.login);
passEditText = (EditText) findViewById(R.id.passw);
saveButton = (Button) findViewById(R.id.btn1);
saveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
DbOpenHelper dbOpenHelper = new DbOpenHelper(TestActivity.this);
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(DbOpenHelper.LOGIN,loginEditText.getText().toString());
cv.put(DbOpenHelper.PASSW,passEditText.getText().toString());
db.insert(DbOpenHelper.TABLE_NAME,null,cv);
db.close();
loginEditText.setText("");
passEditText.setText("");
}
});
}
}
* This source code was highlighted with Source Code Highlighter.
В примере у нас есть окно в котором два поля ввода и кнопка, а по нажатию кнопки происходит сохранение. Вначале мы создаем экземляр класса DbOpenHelper, который создает саму базу и таблицы. Затем получаем объект SQLiteDatabase, методом insert которого будет происходить запись. ContentValues это некая обертка над данными, которые будут записаны в бд. В методе put первым аргументом является имя столбца, а вторым сами данные которые будут записаны в столбец, на языке SQL это выглядит так:
INSERT INTO users ( 'login','passw') VALUES ('somelogin','somepass')
Источник: http://habrahabr.ru/
Комментариев нет:
Отправить комментарий