• Android Sqlite 数据的存储


    一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Access数据库,但是他有比Access更好的平台支持,并且支持分页,现在主要是用于嵌入式的开发。

    在开发过程中其实可以直接声明数据库对象来进行存储管理的,代码如下:

    代码
    SQLiteDatabase sqlitedb; //数据库对象
    sqlitedb = this.openOrCreateDatabase(datebaseName, MODE_PRIVATE, null);

    //执行代码:
    SqlString = " create table " + tableName
    + " (_id integer primary key,num integer,data text) ";
    sqlitedb.execSQL(SqlString);
    这种方式需要我们处理的内容更多一些,个人感觉不是太方便,就像我们开发C#的程序使用SqlHelper一样,在Android平台中也提供了一个类似的类:

    SQLiteOpenHelper 这样类

    我们可以通过实现这个类来完成我们的操作,这样更简单和高效:

    代码如下:

    代码
    import android.content.Context;
    import android.database.Cursor;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;

    public class DBHelper extends SQLiteOpenHelper {

    private static final int DB_VERSION = 1;

    public DBHelper(Context context, String name, CursorFactory factory,
    int version) {
    super(context, name, factory, version);
    // TODO Auto-generated constructor stub
    }

    public DBHelper(Context context, String dBName) {
    super(context, dBName, null, DB_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
    // TODO Auto-generated method stub

    }

    public void onCreate(SQLiteDatabase db, String createDBSql) {
    // TODO Auto-generated method stub
    db.execSQL(createDBSql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // TODO Auto-generated method stub

    }

    @Override
    public void onOpen(SQLiteDatabase db) {
    // TODO Auto-generated method stub
    super.onOpen(db);
    }

    public void InsertintoDB(SQLiteDatabase db,String sql)
    {
    db.execSQL(sql);
    }
    public Cursor opendb(SQLiteDatabase db,String sql) {
    return db.rawQuery(sql, null);
    }
    }

    在这里只做了一个简单的写作,没有写太多方法这个只是一个引导,可以对这个类进行扩展,这样使用起来更方便一些。

    下面是一个简单的调用:

    代码
    //声明
    SQLiteDatabase db = null;

    DBHelper dbhelper
    = null;

    //实例化
    dbhelper = new DBHelper(this, "DBName");

    //方法
    void CreateTable() {

    String sql
    = "Create Table if not exists " + TABLE_NAME + " ( " + ID
    + " text not null , " + NAME + " text not null );";
    dbhelper.onCreate(db, sql);

    }

    void InsertDB(String id, String name) {
    db
    = dbhelper.getWritableDatabase();
    String sql
    = "insert into " + TABLE_NAME + " (" + ID + "," + NAME
    + ") values('" + id + "','" + name + "')";
    dbhelper.InsertintoDB(db, sql);
    }

    void getDB() {
    db
    = dbhelper.getReadableDatabase();
    String sql
    = "select * from " + TABLE_NAME;
    Cursor cursor
    = dbhelper.opendb(db, sql);
    String text
    = "";
    while (cursor.moveToNext()) {
    for (int i = 0; i < cursor.getColumnCount(); i++) {
    text
    += cursor.getString(i);
    }
    text
    += "\n";
    }
    Toast
    .makeText(
    this, cursor.getCount() + "\n" + text,
    Toast.LENGTH_LONG).show();
    }

    在此只是提供一下简单的参考!欢迎批评指正!

  • 相关阅读:
    Guava Enums
    Guava CharMatcher
    Guava CaseFormat
    HotSpot Generations
    Java Run-Time Data Areas
    Reloading Java Classes 201: How do ClassLoader leaks happen? Translation
    Guava BiMap AbstractBiMap
    Reloading Java Classes 101: Objects, Classes and ClassLoaders Translation
    Guava CompoundOrdering
    Chapter 4 -- Throwables
  • 原文地址:https://www.cnblogs.com/fly_binbin/p/1929143.html
Copyright © 2020-2023  润新知