zoukankan      html  css  js  c++  java
  • Android存储方式之SQLite的使用

    Android提供了五种存储方式,分别是文件、sharedPreference、网络、SQLite、ContentProvider。SQLite是一种轻型数据库,具有独立性、隔离性、跨平台、多语言接口、安全性等优点,目前应用较为广泛。现在主要说一下在Android中SQLite的使用。

    首先,我新建一个数据库操作类DataBaseHelper,让他继承自SQLiteOpenHelper,然后复写其中的两个方法onCreate和onUpgrade。

     1 package com.example.sqlitedb;
     2 
     3 import android.content.Context;
     4 import android.database.sqlite.SQLiteDatabase;
     5 import android.database.sqlite.SQLiteDatabase.CursorFactory;
     6 import android.database.sqlite.SQLiteOpenHelper;
     7 
     8 public class DataBaseHelper extends SQLiteOpenHelper{
     9     
    10     private final static String DBName="sqlite3.db";
    11     private final static String TableName="city";
    12     private final static String firstname="provincial";
    13     private final static String lastname="number";
    14 
    15     public DataBaseHelper(Context context, String name, CursorFactory factory,
    16             int version) {
    17         super(context, DBName, factory, version);
    18         // TODO Auto-generated constructor stub
    19     }
    20 
    21     @Override
    22     public void onCreate(SQLiteDatabase db) {
    23         //创建表
    24         String sql=("CREATE TABLE"+TableName+"(INTEGER PRIMARY KEY AUTOINCREMENT,"+firstname+" VARCHAR, "+lastname+" SMALLINT)");
    25         db.execSQL(sql);
    26     }
    27 
    28     @Override
    29     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    30         // 删除表
    31         String sql = "DROP TABLE IF EXISTS " + TableName; 
    32         db.execSQL(sql);  }
    35 
    36 }

    然后,使用sql语句来实现一些常用的SQLite的操作,具体如下:

     1     @Override
     2     public void onCreate(SQLiteDatabase db) {
     3           //创建表
     4           String sql="CREATE TABLE city (INTEGER PRIMARY KEY AUTOINCREMENT, provincial VARCHAR, number SMALLINT)";
     5           db.execSQL(sql);
     6           //插入数据
     7           //方法1:使用execSQL
     8           String sql1="insert into city (firstname,lastname) values ('北京','20')";
     9           db.execSQL(sql1);
    10           //方法2:使用insert
    11           ContentValues cv=new ContentValues();
    12           cv.put("provincial", "天津");
    13           cv.put("number", 30);
    14           db.insert("city", null, cv);
    15           //修改数据
    16           //1.使用execSQL
    17           String sql2="update city set lastname = '25' where provincial='天津'";
    18           db.execSQL(sql2);
    19           //2.使用insert
    20           ContentValues cv1=new ContentValues();
    21           cv1.put("provincial", "北京");
    22           cv1.put("number", 30);
    23           db.insert("city", null, cv);
    24           //删除数据
    25           String sql3 = "delete from city where provincial='北京'";
    26           db.execSQL(sql3);
    27           //关闭数据库
    28           db.close();
    29     }

    执行以上代码,会在/data/data/com.example.sqlitedb/databases目录下生成一个名为"sqlite3.db"的数据库文件。

     

  • 相关阅读:
    [USACO14DEC] Cow Jog_Gold 牛慢跑(金)题解
    [USACO16DEC]Moocast(gold)奶牛广播-金 题解
    [USACO17FEB]Why Did the Cow Cross the Road III S题解
    [USACO4.3]逢低吸纳Buy Low, Buy Lower题解
    洛谷P5057 [CQOI2006]简单题题解
    ksum及二维版本
    [Noip2015] 信息传递
    数据库常用操作
    解决Mac连接MySQL需要输入绝对路径的问题
    在MAC上安装OpenCV(C++)
  • 原文地址:https://www.cnblogs.com/Birdmafly/p/3667759.html
Copyright © 2011-2022 走看看