首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android SQLite示例

Android SQLite示例
EN

Stack Overflow用户
提问于 2012-08-18 12:02:50
回答 3查看 111.2K关注 0票数 55

我是安卓新手,我必须创建一个需要使用SQLite数据库的应用程序。我对SQLite的装备不是很好。

您能否告诉我SQLiteOpenHelper类的用途和用法,并提供一个简单的数据库创建和插入示例?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-18 12:35:03

Sqlite helper类帮助我们管理数据库创建和版本管理。SQLiteOpenHelper负责所有数据库管理活动。要使用它,

1.重写SQLiteOpenHelperonCreate(), onUpgrade()方法。可以选择覆盖onOpen()方法。

2.使用这个子类创建一个可读或可写的数据库,并使用SQLiteDatabase的四个insert(), execSQL(), update(), delete()方法来创建、读取、更新和删除表中的行。

创建MyEmployees表以及选择和插入记录的示例:

代码语言:javascript
复制
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);
    }
}

现在您可以使用这个类,如下所示:

代码语言:javascript
复制
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类来执行所有的数据库操作。创建记录将帮助您插入值,类似地,您可以使用自己的更新和删除函数。

票数 102
EN

Stack Overflow用户

发布于 2012-08-18 12:06:52

DBHelper类处理sqlite数据库的打开和关闭以及sa的创建和更新,here是一篇关于它是如何工作的很好的文章。当我开始使用android的时候,它非常有用(然而,我最近使用了objective-c,忘记了它的大部分用途。

票数 1
EN

Stack Overflow用户

发布于 2012-08-18 12:16:53

使用Helper类,您可以访问SQLite数据库,并可以通过覆盖onCreate()和onUpgrade()方法对其执行各种操作。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12015731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档