阿里云国际站:android sqlite数据库文件

SQLite是一个开源的嵌入式数据库,由于其轻量级,所以在很多场合下它成为了一个不错的选择,特别在Android开发中它可以说是数据存储的首选。

创建数据库并且创建表

在Android中要对SQLite数据库进行操作首先要创建数据库和创建表。这些工作都放在SQLiteOpenHelper的子类中进行。

class MyDatabaseHelper extends SQLiteOpenHelper {

    public static final String CREATE_BOOK = "create table Book ("
            + "id integer primary key autoincrement, "
            + "author text, "
            + "price real, "
            + "pages integer, "
            + "name text, "
            + "category_id integer)";

    private Context mContext;

    MyDatabaseHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
        mContext = context;
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_BOOK);
        Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}

在上面的代码中,首先定义了一个常量CREATE_BOOK ,这个常量里面装的是一条建表语句,然后在MyDatabaseHelper的构造方法中通过super调用父类SQLiteOpenHelper的构造方法,这里传入了四个参数,分别是Context对象,数据库名,用于创建Cursor对象,数据库版本号。若不存在指定名称的数据库则新建数据库,若已经存在则打开该数据库。

然后是重写的onCreate()和onUpgrade()方法,这两个方法是从SQLiteOpenHelper中继承下来的,都必须重写。在onCreate()方法中通过execSQL()执行建表语句。

打开和关闭数据库

要对数据库进行什么增删查改的操作首先得打开数据库,完成操作后记得将数据库关闭。

在Service或Activity的onCreate()方法中调用

MyDatabaseHelper dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 1);

这时数据库并未打开,只有调用了getWritableDatabase()或getReadableDatabase()才算是正式打开数据库。

SQLiteDatabase db = dbHelper.getWritableDatabase();

getWritableDatabase()和getReadableDatabase()这两个方法都可以打开数据库,不同的是当数据库不可写入的时候(如数据库满了),前者会出异常,后者则打开数据库成功但是只能进行读取数据操作。

操作完成后其实不关闭数据库也不会有什么问题,但是为了良好的习惯,在使用完后还是调用下面的方法将其关闭。

阿里云国际站:android sqlite数据库文件
db.close();

对数据库进行增删查改操作

打开数据库后,就可以对数据库进行操作了,增删查改都可以。

//插入数据
db.execSQL("insert into Book (name, author, pages, price) values(?, ?, ?, ?)", 
           new String[] {"The Da Vinci Code", "Dan Brown", "454", "16.96"});

注意这里的占位符与刚刚不一样,用的是问号”?”。

//更新数据
db.execSQL("update Book set price = ? where name = ?", new String[] {"10.99", "The Da Vinci Code"});
//删除数据
db.execSQL("delete from Book where pages > ?", new String[] {"500"});
//查询数据
db.rawQuery("select * from Book", null);

发布者:luotuoemo,转转请注明出处:https://www.jintuiyun.com/170830.html

(0)
luotuoemo的头像luotuoemo
上一篇 2024年3月23日 17:11
下一篇 2024年3月23日 17:17

相关推荐

  • 福州阿里云代理商:apache数据库连接池

    福州阿里云代理商:Apache数据库连接池 引言 近年来,云技术的快速发展促进了各行各业的数字化转型。在福州地区,阿里云作为领先的云计算服务提供商,为企业提供了丰富的解决方案和优势。本文将重点介绍阿里云的一个重要特性——Apache数据库连接池,并探讨其对企业的好处和使用优势。 1. Apache数据库连接池简介 Apache数据库连接池是阿里云提供的一种高…

    2024年1月29日
    5900
  • 阿里云国际站注册教程:安卓读取mysql数据库文件路径

    首先需要说明的一点是,安卓手机无法直接读取阿里云MySQL数据库,这是因为阿里云数据库为了保障数据库的安全,采取了远程连接的方式,只有经过授权的IP地址能连接数据库。 所以我们可以采取的方式是,在服务器上部署一个后台程序,安卓手机通过网络请求与服务交互,服务器再去操作数据库。这种方式有Java servlet, PHP, Python Django等,具体选…

    2024年3月20日
    3300
  • 阿里云物联网物模型无数据

    [求救]买的阿里云机器,用爱淘宝做采集,但无数据 没有办法,我用阿里云的时候和你的情况一样,刚开始可以采集,但是使用过程中就不能采集了,估计是阿里云做了屏蔽,他们的技术人员弄了好长时间都不行,没有办法只好更换空间了,其实我就准备升级阿里云了,出了这么个问题,只能放弃了,我好几个站现在都停运了,只剩下19.9元包邮这个网站了 国内有实力的做物联网开发的公司有哪…

    2023年8月27日
    6600
  • 连云港阿里云代理商:android handler 数据库

    阿里云代理商是指在阿里云平台上代理销售和推广阿里云产品和服务的合作伙伴。连云港阿里云代理商是指在连云港地区拥有阿里云代理商身份的合作伙伴。 Android Handler是Android开发中的一个组件,用于在子线程中与主线程进行通信。它通过消息队列和消息处理器实现线程之间的数据传递和事件处理。在Android开发中,我们可以使用Handler来处理异步任务…

    2024年2月4日
    5200
  • 阜新阿里云企业邮箱代理商:阿里巴巴个人免费邮箱

    阿里云企业邮箱代理商:阿里巴巴个人免费邮箱 一、阿里云企业邮箱的优势 阿里云企业邮箱是一款由阿里云提供的企业级电子邮件服务,具有以下优势: 安全可靠:阿里云企业邮箱采用高级加密技术,保护用户邮箱数据的安全性,有效防止信息泄露和黑客攻击。 稳定性强:基于阿里云高可靠云计算平台,阿里云企业邮箱具备出色的稳定性,保证了邮件的正常收发和访问。 容量大:企业邮箱提供了…

    2024年2月13日
    4700

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
购买阿里云服务器请访问:https://www.4526.cn/