• SQLite数据库的基本使用


    内置在android底层的小型数据库的使用基本上跟SQL sever使用都是一致的;

    创建一个SQLite数据的基本流程如下,需要实现SQLopenHelper这个数据库管理助手接口。如下:新建一个mySQLiteopebHelper类

     1 public class MySQLiteHelper extends SQLiteOpenHelper {
     2     // 构造一个SQLiteOpenHelper
     3     public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,int version){
     4         super(context,name,factory,version);
     5     }
     6 
     7     @Override
     8     public void onCreate(SQLiteDatabase db) {
     9         // 创建一个数据库以及表格(ID,NAME,AGE),其中主键为ID,自增形式
    10         db.execSQL("create table mytable(id integer primary key autoincrement,name text,age integer)");
    11     }
    12 
    13     @Override
    14     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    15         // 数据库更新
    16     }
    17 }
    View Code

    在Activity里面的实例化一个数据库管理助手实例,接着创建一个数据库实例。getReadableDatabase()和getWirtableDatabase()分别可以创建一个SQLiteDatabase,但是两个方法还是有区别的,前者创建的数据库是以读写方式打开数据库的,当磁盘满的时候,会失败,重新打开会以只读的模式打开数据库,后者创建的数据库也是以读写方式打开的数据库,当磁盘满的时候,会失败报错,所以一般建议使用getReadableDatabase()方式创建数据库。下面的例子列举了数据库的常用方法。

     1  MySQLiteHelper mySQLiteHelper;  // 申明一个数据库管理助手对象
     2     SQLiteDatabase database;        // 申明一个数据库对象
     3 
     4     // 构造一个数据库管理助手对象
     5     mySQLiteHelper=new MySQLiteHelper(this,"testdb",null,1);
     6     // 该方法创建一个数据库,可以读写,磁盘满了会自动更改模式为只读模式,getWritableDatabase()盘满报错
     7     database=mySQLiteHelper.getReadableDatabase();
     8     // 创建一个数据表
     9     database.execSQL("create table mytable(id integer primary key autoincrement,name text,age integer)");
    10     // 增加数据(第一种方法)
    11     ContentValues contentValues=new ContentValues();
    12     contentValues.put("id",1);
    13     contentValues.put("name","隔壁老王");
    14     contentValues.put("age",30);;
    15     database.insert("mytable",null,contentValues);
    16     // 增加数据(方法二)
    17     String intsert="intsert into mytable(id,name,age) value(1,"隔壁老王",30)";
    18     database.execSQL(intsert);
    19     // 删除数据(删除表mytable,id=1那一行开始的系列数据)(方法一)
    20     database.delete("mytable","id=?",new String[]{"1"});
    21     // 删除数据9方法二)
    22     String delete="delete from mytable where id=2";
    23     database.execSQL(delete);// 执行SQL语句
    24     // 查询数据(返回一个指针索引,以此调用相应方法查询数据)
    25     Cursor cursor=database.query("mytable",new String[]{"id","name","age"},null,null,null,null,null);
    26     while (cursor.moveToNext()){
    27         int idindex=cursor.getColumnIndex("id");
    28         int id=cursor.getInt(idindex);
    29 
    30         int nameindex=cursor.getColumnIndex("name");
    31         String name=cursor.getString(nameindex);
    32 
    33         int ageindex=cursor.getColumnIndex("age");
    34         int age=cursor.getInt(ageindex);
    35 
    36         String result=id+" "+name+" "+age+"
    ";
    37     }
    38     // 修改数据
    39     ContentValues contentValues1=new ContentValues();
    40     contentValues1.put("id",3);
    41     contentValues1.put("name","隔壁小王");
    42     contentValues1.put("age",15);
    43     database.update("mytable",contentValues1,"id=?",new String[]{"1"});
    44     // 关闭数据库
    45     database.close();
    View Code
  • 相关阅读:
    JQ 放大镜
    Jquery.tmpl
    Jquery Live方法
    Bootstrap之底层媒体查询
    Bootstrap 字体与图标
    工具提示
    模态框
    BootStrap格栅系统
    Tab选项卡
    弹出框
  • 原文地址:https://www.cnblogs.com/hot-destiny/p/5788981.html
Copyright © 2020-2023  润新知