如何编写可复用code为数据库中的Android [英] How to write reusable code for Database in Android
本文介绍了如何编写可复用code为数据库中的Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我应该怎样写可重复使用的$ C $数据库c。在安卓。我应该遵循什么模式或体系结构?
解决方案
步骤1:总是不同的封装应用,例如(com.appname.db)。
第2步:在其上创建DBHelpar类,并把所有方法涉及数据库就可以了,。
第3步:这是所有的常用方法。
我贴code,供您参考
包com.androidhive.androidsqlite;
进口的java.util.ArrayList;
进口的java.util.List;
进口android.content.ContentValues;
进口android.content.Context;
进口android.database.Cursor;
进口android.database.sqlite.SQLiteDatabase;
进口android.database.sqlite.SQLiteOpenHelper;
公共类数据库处理器扩展SQLiteOpenHelper {
//所有静态变量
//数据库版本
私有静态最终诠释DATABASE_VERSION = 1;
//数据库名称
私有静态最后弦乐DATABASE_NAME =contactsManager;
//联系方式表名
私有静态最后弦乐TABLE_CONTACTS =人脉;
//联系方式表列名
私有静态最后弦乐KEY_ID =ID;
私有静态最后弦乐KEY_NAME =名;
私有静态最后弦乐KEY_PH_NO =PHONE_NUMBER;
公共数据库处理器(上下文的背景下){
超(背景下,DATABASE_NAME,空,DATABASE_VERSION);
}
//创建表
@覆盖
公共无效的onCreate(SQLiteDatabase DB){
字符串CREATE_CONTACTS_TABLE =CREATE TABLE+ TABLE_CONTACTS +(
+ KEY_ID +INTEGER PRIMARY KEY,+ KEY_NAME +TEXT
+ KEY_PH_NO +TEXT+);
db.execSQL(CREATE_CONTACTS_TABLE);
}
//升级数据库
@覆盖
公共无效onUpgrade(SQLiteDatabase分贝,INT oldVersion,诠释静态网页){
如果存在//删除旧的表
db.execSQL(DROP TABLE IF EXISTS+ TABLE_CONTACTS);
//再次创建表
的onCreate(DB);
}
/ **
*所有CRUD(创建,读取,更新,删除)操作
* /
//添加新联系人
无效的addContact(联系方式联系我们){
SQLiteDatabase DB = this.getWritableDatabase();
ContentValues值=新ContentValues();
values.put(KEY_NAME,contact.getName()); // 联系人姓名
values.put(KEY_PH_NO,contact.getPhoneNumber()); //联系电话
//插入行
db.insert(TABLE_CONTACTS,空,价值观);
db.close(); //闭幕数据库连接
}
//获取单触点
联系getContact(INT ID){
SQLiteDatabase DB = this.getReadableDatabase();
光标光标= db.query(TABLE_CONTACTS,新的String [] {KEY_ID,
KEY_NAME,KEY_PH_NO},KEY_ID +=?,
新的String [] {将String.valueOf(ID)},NULL,NULL,NULL,NULL);
如果(光标!= NULL)
cursor.moveToFirst();
联系方式联系我们=新的联系方式(的Integer.parseInt(cursor.getString(0)),
cursor.getString(1),cursor.getString(2));
//返回接触
返回接触;
}
//获取所有联系人
公开名单<联系与GT; getAllContacts(){
名单<联系与GT; contactList =新的ArrayList<联系与GT;();
//选择所有查询
字符串selectQuery =SELECT * FROM+ TABLE_CONTACTS;
SQLiteDatabase DB = this.getWritableDatabase();
光标光标= db.rawQuery(selectQuery,NULL);
//遍历所有行和添加到列表
如果(cursor.moveToFirst()){
做 {
联系方式联系我们=新联系();
contact.setID(的Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contact.setPhoneNumber(cursor.getString(2));
//添加联系人列出
contactList.add(接触);
}而(cursor.moveToNext());
}
//返回联系人列表
返回contactList;
}
//更新单触点
公众诠释updateContact(联系方式联系我们){
SQLiteDatabase DB = this.getWritableDatabase();
ContentValues值=新ContentValues();
values.put(KEY_NAME,contact.getName());
values.put(KEY_PH_NO,contact.getPhoneNumber());
//更新行
返回db.update(TABLE_CONTACTS,价值观,KEY_ID +=?,
新的String [] {将String.valueOf(contact.getID())});
}
//删除单个联系人
公共无效deleteContact(联系方式联系我们){
SQLiteDatabase DB = this.getWritableDatabase();
db.delete(TABLE_CONTACTS,KEY_ID +=?,
新的String [] {将String.valueOf(contact.getID())});
db.close();
}
//获取联系人计数
公众诠释getContactsCount(){
字符串countQuery =SELECT * FROM+ TABLE_CONTACTS;
SQLiteDatabase DB = this.getReadableDatabase();
光标光标= db.rawQuery(countQuery,NULL);
cursor.close();
//返回计数
返回cursor.getCount();
}
}
我这个,现在你得到了它如何在Android中处理数据库。
How should i write a reusable code in Android for Database. What pattern or architecture should i follow ?
解决方案
Step 1: Make Always different package in Application eg(com.appname.db).
Step 2: Create DBHelpar Class on it and Put All method relate db on it,.
Step 3: This is All are Common Method.
i am pasting code for your reference
package com.androidhive.androidsqlite;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class DatabaseHandler extends SQLiteOpenHelper {
// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;
// Database Name
private static final String DATABASE_NAME = "contactsManager";
// Contacts table name
private static final String TABLE_CONTACTS = "contacts";
// Contacts Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_PH_NO = "phone_number";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "("
+ KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT,"
+ KEY_PH_NO + " TEXT" + ")";
db.execSQL(CREATE_CONTACTS_TABLE);
}
// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// Drop older table if existed
db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
// Create tables again
onCreate(db);
}
/**
* All CRUD(Create, Read, Update, Delete) Operations
*/
// Adding new contact
void addContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName()); // Contact Name
values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone
// Inserting Row
db.insert(TABLE_CONTACTS, null, values);
db.close(); // Closing database connection
}
// Getting single contact
Contact getContact(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
if (cursor != null)
cursor.moveToFirst();
Contact contact = new Contact(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2));
// return contact
return contact;
}
// Getting All Contacts
public List<Contact> getAllContacts() {
List<Contact> contactList = new ArrayList<Contact>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
Contact contact = new Contact();
contact.setID(Integer.parseInt(cursor.getString(0)));
contact.setName(cursor.getString(1));
contact.setPhoneNumber(cursor.getString(2));
// Adding contact to list
contactList.add(contact);
} while (cursor.moveToNext());
}
// return contact list
return contactList;
}
// Updating single contact
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}
// Deleting single contact
public void deleteContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_CONTACTS, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
db.close();
}
// Getting contacts Count
public int getContactsCount() {
String countQuery = "SELECT * FROM " + TABLE_CONTACTS;
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(countQuery, null);
cursor.close();
// return count
return cursor.getCount();
}
}
i this now you got it How to handle database in android.
这篇关于如何编写可复用code为数据库中的Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文