【Android开发--新手必看篇】SQLite数据库

Android笔记

​ ——SQLite数据库
若对该知识点有更多想了解的,欢迎私信博主~~

SQLite数据库:SQLite
SQLite数据库是一款轻量级的数据库,它的运算速度特别快,占用资源特别少,通常指需要几百KB的内存就足够了。因而特别适合在移动设备上使用。
特点:
  1. 轻量级
  2. 不需要“安装”
  3. 单一文件
  4. 跨平台/可移植性
  5. 开源
数据类型:
  1. INTEGER:整数
  2. REAL:浮点数
  3. CHAR(n):长度固定为n的字串,n不能超过 254
  4. VARCHAR(n):长度不固定且其最大长度为 n 的字串,n不能超过 4000
  5. TEXT: 文本字符串
  6. BLOB:二进制数据块
  7. Date:年份、月份、日期
  8. Time:小时、分钟、秒
  9. timestamp: 年、月、日、时、分、秒、毫秒
创建数据库:
  1. 创建一个继承自SQLiteOpenHelper的工具类:

    public class SqlUtile extends SQLiteOpenHelper {
        
        // 重写构造方法
        public SqlUtile(Context context, String name, int version) {
            // 【上下文】、【数据库名称.db】、【默认工厂】、【版本号】
            super(context, name, null, version);
        }
        
        // 重新写onCreate()方法
        /*
        * 第一次创建数据库时回调该方法
        * 可以生成表结构,并添加一些初始化数据
        * */
        @Override
        public void onCreate(SQLiteDatabase db) {
            // 初始化建表
            db.execSQL(【建表语句】);
            // 添加初始数据
            db.execSQL(【添加语句】);
        }
        
        // 当数据库版本更新时回调该方法
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
    
  2. 举例

    package com.example.sirl.demo0711.work3;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.support.annotation.Nullable;
    
    public class SQLite extends SQLiteOpenHelper {
        public SQLite(Context context) {
            super(context, "user", null, 1);
        }
    
        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
            sqLiteDatabase.execSQL("Create table if not exists table1(id Integer primary key,user varchar(20),pwd varchar(20))");
        }
    
        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
    
        }
    }
    
    使用:
    1. 新建数据库

      			//创建数据库对象,若不存在则新建,若不存在则复用
                  SQLite sqLite = new SQLite(getApplicationContext());
                  // 以何种方式打开数据库
                  // getReadableDatabase()
                  // 以读写的方式打开数据库对应的SQLiteDatabase对象,如果数据库磁盘满了,则只能读不能写,并且抛出异常
                  // getWritableDatabase()
                  // 以写的方式打开数据库对应的SQLiteDatabase对象,如果数据库磁盘满了,则返回打开失败,继而以只读方式打开数据库
                  SQLiteDatabase db = sqLite.getWritableDatabase();
      
    2. 	//第一种方式
          ContentValues cv = new ContentValues();
          cv.put("user", "bbb");
          cv.put("pwd", "123456");
          db.insert("user", null, cv);
          //第二种方式
          db.execSQL("insert into user(user,pwd) VALUES(?,?)", new Object[]{"bbb", "123456"});
      
    3. 	//第一种方式
          String whereClause2="user=?";
          String[] whereArgs2={String.valueOf("bbb")};
          //当多个条件时
      	String whereClause2="user=? and pwd=?";
      	String[] whereArgs2={String.valueOf("bbb"),String.valueOf("123456")};
          
      	db.delete("user",whereClause2,whereArgs2);
          //第二种方式
          db.execSQL("delete from user where user='bbb' and pwd='123456'");
      
    4. 	//第一种方式
          ContentValues cv = new ContentValues();
          cv.put("user","bbb");
          String whereClause="user=?";
          String[] whereArgs={"aaa"};
          //当多个条件时
          cv.put("user","bbb");
      	String whereClause="user=? and pwd=?";
      	String[] whereArgs={"aaa","123456"};
      
          db.update("user",cv,whereClause,whereArgs);
          //第二种方式
          db.execSQL("update user set user=? where user='aaa' and pwd='123456'",new Object[]{"bbb"});
      
    5. 	//第一种方式
      	Cursor cursor=db.query("user",new String[]{"user","pwd"},null,null,null,null,null,null);
      	//第二种方式
      	Cursor cursor1=db.rawQuery("select user,pwd from user",null);
      
          if (cursor.moveToFirst()){
              do{
                Log.e("user",""+cursor.getString(cursor.getColumnIndex("user")));
                }while (cursor.moveToNext());
             }
      
      注:1.查找数据库位置(打开SDK-AS右下角Device File Explorer-data-data-自己的项目名称-databases),打开可以用SQLiteSpy打开。
      2.SQLite为独立的数据库,有自己的语法和规范,但也符合通用规范
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Android中的SQLite数据库是一种轻量级的数据库,它可以在Android应用程序中存储和检索数据。SQLite数据库使用SQL语言来管理数据,可以在Android应用程序中创建、读取、更新和删除数据。使用SQLite数据库可以使应用程序更加高效和可靠,因为它可以在本地存储数据,而不需要访问网络。在Android中使用SQLite数据库需要使用SQLiteOpenHelper类来创建和管理数据库SQLiteOpenHelper类提供了一些方法来创建和升级数据库,以及插入、查询、更新和删除数据。在使用SQLite数据库时,需要注意数据类型、表结构、SQL语句等方面的问题,以确保数据的正确性和完整性。 ### 回答2: Android平台经常使用SQLite数据库来存储和管理本地数据。在本文中,我们将讨论如何在Android中使用SQLite数据库。 首先,在Android中使用SQLite数据库,我们需要创建一个SQLiteOpenHelper类。这个类用于创建和升级数据库。它包含了两个重要的方法:onCreate()和onUpgrade()。onCreate()方法将在首次创建数据库时被调用。onUpgrade()方法将在升级数据库时被调用。我们可以在这个类中定义表名,列名,数据库版本号和其他数据库相关信息。 接下来,在我们使用数据库前,需要实例化一个SQLiteOpenHelper类对象。这个对象用于打开或创建数据库。我们可以使用getReadableDatabase()和getWritableDatabase()方法来获取一个可读/写的数据库对象。 在获取数据库对象后,我们可以执行SQL命令来操作数据库。我们可以使用execSQL()方法来执行SQL命令。我们可以使用insert()、update()和delete()方法来执行增、删、改操作。我们可以使用rawQuery()方法来执行查询操作。 SQLiteOpenHelper类和SQLiteDatabase类并不是线程安全的。因此我们需要确保在使用时进行同步操作。我们可以使用synchronized关键字来达到同步效果。 在Android中,许多第三方的开源框架,如OrmLite、GreenDao和Realm等,提供了ORM(对象关系映射)的功能,使得数据库的操作更加简单和便捷。 总的来说,在Android中使用SQLite数据库可以轻松地存储和管理本地数据。SQLiteOpenHelper和SQLiteDatabase提供了丰富的API来操作数据库。ORM框架为我们提供了更加简便的数据库操作方式。因此,掌握AndroidSQLite数据库的使用非常重要。 ### 回答3: Android SQLite数据库Android开发中最常用的数据库之一,它是一个基于文件的嵌入式关系数据库管理系统。SQLite在设计时考虑到了资源占用和运行效率,所以非常适合在移动设备上使用。下面将详细介绍如何使用Android SQLite数据库。 1. 创建数据库 首先需要创建一个SQLite数据库,通过SQLiteOpenHelper类来创建,传入的参数主要是数据库版本号和数据库名称。在SQLiteOpenHelper的子类中重写onCreate方法来创建表格和一些初始化操作。 2. 执行SQL语句 在SQLiteOpenHelper的子类中重写onUpgrade方法来执行升级操作,可以通过执行ALTER TABLE语句来修改表格结构,并通过DROP TABLE语句删除表格。除此之外,在应用中也可以通过SQLiteDataBase对象的execSQL方法来执行SQL语句,如插入、删除或修改数据等。 3. 增删改查操作 增加(insert):通过SQLiteDataBase对象的insert方法来实现,在方法中传入表名和map对象,map对象中存储数据的键值对。 删除(delete):同样通过SQLiteDataBase对象的delete方法来实现,传入表名和删除条件。 修改(update):也是通过SQLiteDataBase对象的update方法来实现,同时传入修改的数据及条件。 查询(query):同样通过SQLiteDataBase对象的query方法来实现,传入要查询的表名、查询的列、查询条件等参数即可。 4. 事务操作 SQlite数据库支持事务操作,可以在一组操作中,只要有一个操作出现问题,就可以将之前的操作全部回滚,以保证数据的完整性和一致性。 以上就是android-sqlite数据库的使用方法,当然还有很多细节需要注意,例如:表格的设计、SQL语句的优化等。熟练掌握SQLite的使用,可以帮助开发者更好地管理应用数据,提高应用性能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值