• SQLite在Android程序中的使用方法,SQLite的增删查改方法


    Sqlite:

    1.一款用来实现本地数据存储的轻量级数据管理工具,是众多用来实现数据库管理的工具之一。

    2.Android已经将SQLite的代码功能吸收在它的系统中,我们可以直接在Android程序中使用SQLite的语句来创建数据库,并实现数据库的增删查改

    SQLite的简单使用方法:

    如何获得一个数据库的class模板,并设定数据库里的数据结构:

    自己新建一个类,继承SQLiteOpenHelper,并重写构造方法,oncreate(),onUpgrade()

    自定义类的代码实现方法和构造方法的原始模板解析:

    public class Database extends SQLiteOpenHelper {
        public Database(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
            super(context, name, factory, version);
         //Context
         //String name "创建数据库的名字"
         //
    SQLiteDatabase.CursorFactory factory "在数据库中查找是的光标(相当于数组中的下标)"
         // int Version "数据库的版本信息"  
        }
    
        @Override
        public void onCreate(SQLiteDatabase db) {
          //在创建数据库的时候调用
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          //每次启动数据库会检测数据库的版本信息,如果版本有变动就会执行此方法
        }
    }

    用来实现数据库的自定义类的具体代码:

    public class Data extends SQLiteOpenHelper 

    public Data(Context context) {

        //简单起见,直接指定了数据库的名字为DATA,光标信息为null,版本为1
        //所以在自定义的类的构造方法中只有Context参数
        //在调用父类构造方法的时候,给定固定的参数来简化数据库创建
    super(context,"DATA", null, 1); } @Override public void onCreate(SQLiteDatabase db) {
          //创建数据库建构内容的语句,具体解析在下文整理 db.execSQL(
    "CREATE TABLE user("+
    "_id INTEGER PRIMARY KEY AUTOINCREMENT," + "name TEXT DEFAULT ""," + "sex TEXT DEFAULT "")");
        //以上的语句给出了一个名为user的数据库结构对象,里面包含INTERGER类型的_id信息,并自增
        //TEXT数据类型的name
        //text数据类型的sex
    } @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {       //由于给出了版本参数信息为固定的1,所以不会执行数据库更新操作 } }

    自己重写了数据库的模板后,如何实现数据库的使用和管理:

    1.利用自定义的数据库类来新建一个数据库对象,

    2.再通过新建的数据库得到可读的数据库对象和可写的数据库对象,

    新建ContentValues对象向获得的可写数据库中添加内容,实现代码:

    Private Data data = new Data(this);
    private SQLiteDatabase dbWriter = db.getWritableDatabase();
     ContentValues cv = new ContentValues();
     cv.put("name",etName.getText().toString());
     cv.put("sex",etSex.getText().toString());
    
    //insert方法的三个参数的意义分别是:插入数据表的名称,插入数据表的位置信息,插入的对象
     dbWriter.insert("user",null,cv);
    //每次使用完数据库之后,记得关闭数据库,类似I/O的关闭 
    dbWrite.close();


    注:位置信息这里填的是null,具体运行方式尚不清楚,但看到这里的时候,有时间去研究一下

    通过获得的可读数据库对象,在目标数据库中进行查找的方法实现代码:

    SQLiteDatabase DB = db.getReadableDatabase();
    //新建一个光标对象,指明在“user”数据表中查找,后面的参数是一系列限制条件,
    //全部为null意味输出所有user中的数据 Cursor c
    = DB.query("user",null,null,null,null,null,null);
    //当光标仍然能够向下一行运行的时候,执行数据库的读取操作
    while (c.moveToNext()){ String name=c.getString(c.getColumnIndex("name")); String sex=c.getString(c.getColumnIndex("sex")); Toast.makeText(getApplicationContext(),name+"--"+sex,Toast.LENGTH_SHORT).show();
    }
  • 相关阅读:
    Android Studio 常用快捷键以及设置
    GitHub windows客户端拉代码和提交代码
    Android Studio + gradle多渠道打包
    Android sdk 镜像服务器资源
    Rikka with Graph(联通图取边,暴力)
    Rikka with Chess(规律)
    Largest Submatrix(动态规划)
    City Game(动态规划)
    Largest Rectangle in a Histogram(最大矩形面积,动态规划思想)
    How many ways(记忆化搜索)
  • 原文地址:https://www.cnblogs.com/thinfog/p/5641106.html
Copyright © 2020-2023  润新知