美文网首页
Android SQLite数据库使用

Android SQLite数据库使用

作者: NullUser | 来源:发表于2018-07-15 21:05 被阅读0次

    SQLite是一种轻量级的数据库,适合用作手机等移动端的数据储存。Android系统内置了SQLite数据库。

    创建数据库

    • SQLiteOpenHelper,该类是Android提供给我们的便于管理数据库的一个类,里面有两个重要方法需要我们在继承时进行重写。分别是onCreate(),在数据库创建时会调用;onUpgrade(),对数据库升级时调用。另外还提供了创建数据库的方法:getReadableDatabase()、getWritableDatabase().上述方法在调用时,如果数据库不存在,则会创建新的数据库,调用onCreate()方法。如果已经存在,则只返回一个当前数据库的SQLiteDatabase对象,onCreate()方法不会调用。

    • getReadableDatabase():该方法得到的数据库对象,可以对其进行读写操作,但是磁盘空间不足时,数据库将会是只读状态。

    • getWritableDatabase():该方法得到的数据库对象同样可以进行读写操作,当磁盘空间不足时,将抛出异常。

    • SQLiteDatabase,该类是一个数据库访问类,便于我们对数据库进行一些增删改查等操作。

    具体实现:
    1.新建类继承自SQLiteOpenHelper

    public class MyDataBaseHelper extends SQLiteOpenHelper {
        //SQL建表语句
        public static final String CREATE_BOOK = "create table book (id integer primary key autoincrement, " +
                                                                    "name text, " +
                                                                    "author text, " +
                                                                    "price real, " +
                                                                    "pages integer)";
    
        public MyDataBaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
            //调用SQLiteDatabase的execSQL()方法执行SQL语句。此处执行了建表语句
            db.execSQL(CREATE_BOOK);
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    
        }
    }
    

    2.创建数据库

    //接收参数分别为Context、数据库名、自定义Cursor,传入null即可、数据库版本号
    MyDataBaseHelper myDBHelper = new MyDatabaseHelper(this,"BOOK.db",null,1);
    myDBHelper.getWritableDatabase();
    

    添加数据

    1.我们将要添加的一行数据放入ContentValues对象。通过put()方法设置对应列的值。

    ContentValues contentValues = new ContentValues();
    contentValues.put("name","book1");
    contentValues.put("author","author1");
    contentValues.put("price",100);
    contentValues.put("pages",998);
    

    2.得到SQLiteDatabase对象,调用insert()方法即可新增一条数据。

    SQLiteDatabase database = myDBHelper.getWritableDatabase();
    //第一个参数传入表名,第三个参数传入ContentValues对象。
    database.insert("book",null,contentValues);
    

    删除数据

    调用SQLIteDatabase的delete()方法即可删除对应条件的数据。第一个参数为表名,第二、三个参数用于约束删除条件。如删除表中价格大于50的书

    database.delete("book","price > ?",new String[]{"50"});
    

    相关文章

      网友评论

          本文标题:Android SQLite数据库使用

          本文链接:https://www.haomeiwen.com/subject/hmxmpftx.html