阿里云国际站: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

相关推荐

  • 绵阳阿里云企业邮箱代理商:钉钉邮箱发邮件进垃圾箱会怎么样

    绵阳阿里云企业邮箱代理商:钉钉邮箱发邮件进垃圾箱会怎么样 阿里云企业邮箱代理商在绵阳地区提供了一种高效、安全和可靠的电子邮件解决方案。作为钉钉邮箱的用户,你可能会遇到一个常见的问题,即发送的邮件可能会被接收端的垃圾邮件过滤器误判为垃圾邮件。那么,如果你的钉钉邮箱的邮件进入了对方的垃圾箱,会有哪些影响呢?让我们来详细解答: 1. 邮件被错判为垃圾邮件的原因 首…

    2024年1月13日
    65800
  • 江门阿里云代理商:阿里云服务器重置密码

    如果你已经成为阿里云的使用者,并且在使用过程中忘记了服务器的密码,你可以通过以下步骤进行重置: 登录阿里云控制台。 在左侧导航栏中选择”云服务器 ECS”。 在顶部的菜单栏中,选择你需要重置密码的地域。 在云服务器列表中,找到你需要重置密码的服务器行,然后在”操作”列中,点击”更多” -…

    2024年3月15日
    63500
  • 阿里云的服务器腾讯云的数据库

    阿里云和腾讯云都是中国知名的云服务提供商,其提供的产品包括服务器和数据库服务。 阿里云的服务器产品主要包括云服务器ECS(Elastic Compute Service),提供了包括CPU、内存、存储等资源,用户可以根据需求选择不同实例规格的服务器进行使用,具备弹性扩展和高可用性。同时,阿里云还提供了其他的服务器产品,如裸金属服务器、GPU服务器等。 而腾讯…

    2023年8月16日
    74900
  • 昆明阿里云代理商:阿里防护系统防火墙

    昆明阿里云代理商是指在昆明地区代理销售阿里云产品和服务的合作伙伴。阿里云(Aliyun)是阿里巴巴集团旗下的云计算服务品牌,提供了一系列云产品和服务,包括计算、存储、数据库、网络、安全等方面的解决方案。 阿里云的防火墙是一种云上网络安全解决方案,用于保护云上服务器和应用免受网络攻击。防火墙基于阿里云的云盾安全平台,通过检测和过滤网络流量,防止恶意攻击和未经授…

    2023年12月14日
    69600
  • 阿里云web应用防火墙

    阿里云Web应用防火墙(Web Application Firewall,WAF)是阿里云提供的一种安全服务,旨在保护用户的Web应用免受各种网络攻击,包括SQL注入、跨站脚本攻击(XSS)、命令注入、路径遍历等。 阿里云WAF通过监控和过滤用户的HTTP/HTTPS请求,识别并阻止恶意请求和攻击,从而减少Web应用漏洞被利用的风险。它能实时更新持续变化的W…

    2023年9月15日
    1.2K680

发表回复

登录后才能评论

联系我们

4000-747-360

在线咨询: QQ交谈

邮件:ixuntao@qq.com

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

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