SQLiteDatabase

在这里我来为大家说说关于Android中SQLiteDatabase是怎么玩的:

SQLiteDatabase 简介

1、  SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库一样,您不需要在系统中配置。

2、  就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

 

SQLiteDatabase 特点

         1.不需要一个单独的服务器进程或操作的系统(是没有服务器的)。

SQLite 不需要配置,这意味着不需要安装或管理。

         2.一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

         3.SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

         4.SQLite 是自给自足的,这意味着不需要任何外部的依赖。

         ......

         Android 中内置了对SQLite数据库的支持。

Android 对SQLite的支持

         Google为Andriod的较大的数据处理提供了SQLite,并且提供了SQLiteOpenHelper助手类帮助创建和管理SQlite数据库。

下表列出了一些常用的方法:


SQLiteDatabase 创建数据库步骤

1.继承SQLiteOpenHelper 类。

2.重写onCreate()、onUpdate()方法。

3.创建SQLiteOpenHelper 实现类对象。

 

 

public void createDB(View view ){
sqliteDB studentdb= new sqliteDB(this);
   studentdb.getReadableDatabase();
}
 
public class sqliteDB extendsSQLiteOpenHelper {
   private static final String STUDENT_DB_BANE = "student.db";
   private static final int STUDENT_DB_VERSION = 1;
   private static final String STUDENT_SQL = "CREATE TABLESTUDENT(" +
           "_ID INTEGER PRIMARY KEY AUTOINCREMENT," +
           "CODE VERCHAR(255) NOT NULL," +
           "NAME VERCHAR(255) NOT NULL" +
           ")";
   @Override
   public void onCreate(SQLiteDatabase db) {
       db.execSQL(STUDENT_SQL);
    }
//升级版本时,使用该方法
   @Override
public voidonUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
       Log.e("onUpgrade:","oldVersion:"+oldVersion+"newVersion:"+newVersion);
    }
}


添加一条记录

publicvoid insertData(View view){
                   /*获取一个可写的db对象*/
                   SQLiteDatabase db=studentDb.getWritableDatabase();
                   /*第一种插入数据的格式*/
         db.execSQL("insert intostudent(stu_code,stu_name)", new Object[]{100,"李斯"});
                   /*第二种插入数据的方式*/
                   ContentValues values=newContentValues();
                   values.put("stu_code","101");
                   values.put("stu_name","李四");
                   longresult=db.insert("student", "", values);
                   Toast.makeText(this,"number:"+result, Toast.LENGTH_SHORT).show();
}


注意:这里返回的result是一个long型,其值为当前插入行的行号值。

查找一条记录

publicvoid queryData(View view){
/*获取一个可读的数据库对象*/
         SQLiteDatabasedb=studentDb.getReadableDatabase();
         /*第一种插入数据的方式*/
Cursorcursor=db.rawQuery("select * from student where stu_code=?", newString[]{"100"});
         /*遍历游标封装数据到集合*/
         List<Map<String,String>>data=new ArrayList<Map<String,String>>();
         Map<String,String> map;
         while(cursor.moveToNext()){
                   map=new HashMap<String,String>();
                   for(inti=0;i<cursor.getColumnCount();i++){
                            Stringkey=cursor.getColumnName(i);
                            Stringvalue=cursor.getString(i);
                            map.put(key, value);
                   }
                   data.add(map);
         }
}


更改一条记录

publicvoid updateData(View view){
         /*1.获取一个可写的数据库对象*/
         SQLiteDatabasedb=studentDb.getWritableDatabase();
         /*2.填充要修改的字段的名称*/
         ContentValues values=newContentValues();
         /*3.修改学号为100的学生的姓名为'李四'*/
         values.put("stu_name", "李四");
         /*4.执行修改,获得结果*/
         /*Android封装的对数据库的操作*/
         int result=db.update("student", values, "stu_code=?", newString[]{"100"});
         }


删除一条记录

publicvoid deleteData(View view){
                   /*获取一个可写的数据库对象*/
                   SQLiteDatabasedb=studentDb.getWritableDatabase();
                   /*删除学号为100的学生'*/
                   db.delete("student","stu_code=?", new String[]{"100"});
         }


备注:

1. 创建完成后可以进入sqlite数据库查看结果步骤:

打开sqlite ,没有可以下载

将原有内容移除。

添加数据库。

找到从android中导出到桌面的student.db为文件打开即进入SQLite:


注意:student.db文件在项目中存在位置,该文件在中,打开后如下:


(我未开启模拟器,这里仅供演示)然后点击fileExplorer在文件列表中找到当前项目,在其中找到data文件,再去目录再找data文件,其中有个database文件,该文件中既有student.db,选定文件后,单击即可另存为到硬盘,

若student.db没有,则可能执行有误。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值