zoukankan      html  css  js  c++  java
  • Android基础------SQLite数据库(一)

    1.SQLite介绍

    SQLite是一款非常流行的嵌入式数据库,它支持SQL操作,并且只用很少的内存。

    Android在运行时集成了SQLite,所有每个Android应用程序都可以使用SQLLite数据库。

    对熟悉SQL的开发人员来说,使用SQLite相当简单。

    支持数据类型
    null、integer、real、text、blob

    2.使用SQLite

    首次使用SQLite需要创建数据库和表,以及一些初始化数据。

     Android提供了抽象类SQLiteOpenHelper完成此类功能。

    2.1  SQLiteOpenHelper中的方法

      onCreate(SQLiteDatabase db)  //第一次创建数据库时被调用,比如表只需要创建一次,那么这个执行语句就可以写在onCreate()里面

      onUpgrade(SQLiteDatabase db,int arg1,int arg2)  //系统发现现有数据库版本不同,即会被调用

    新建一个类,继承SQLiteOpenHelper,同时实现onCreate()和onUpgrade()方法,以及一个构造方法


    public
    class MyOpenHelper extends SQLiteOpenHelper { /** * * @param context 上下文 * @param name 数据库文件名称 * @param factory 如果为null则使用默认方式 * @param version 版本号,后期可以修改,但只能往上升,不能往下降 */ public MyOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) { super(context, name, factory, 1); } /** * 当数据库文件不存在的时候,创建数据库文件,并且是第一次使用 * @param sqLiteDatabase */ @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { Log.i("onCreate","调用onCreate"); } /** * 只有版本更新时调用 * @param sqLiteDatabase * @param i 旧版本号 * @param i1 当前版本号 */ @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { Log.i("onUpgrade","调用onUpgrade"); } }

    (在android系统中,每个应用程序的SQLite数据库都被保存在各自的/data/data/<包名>/databases目录下,默认情况下,都是私有的,仅允许当前应用程序访问。)

    activity_main.xml中加个按钮:

     <Button
            android:id="@+id/button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="创建数据库"
            android:onClick="test_01"/>

    MainActivity:

     public void test_01(View view){
            //实例化
            MyOpenHelper myOpenHelper = new MyOpenHelper(this,"mybase.db",null,1);
            //获取一个SQLiteDatabase对象
            SQLiteDatabase sqLiteDatabase = myOpenHelper.getReadableDatabase();
            //sql语句,暂时忽略不写
            String sql = "  ";
            //执行sql语句
            sqLiteDatabase.execSQL(sql);
            //关闭
            sqLiteDatabase.close();
            myOpenHelper.close();
        }

    2.2  SQLiteDatabase对象说明

    2.2 1  通过此对象就可以调用SQLiteDatabase的方法来进行数据库操作,例如创建表、插入数据、删除数据等操作。

    2.2.2  获取SQLiteDatabase对象的方法

    getWritableDatabase()   //以读写的方式打开数据库,一旦磁盘空间满了,数据库就只能读不能写,倘若再次打开数据就会报错

    getWritableDatabase()  //先以读写的方式打开数据库,如果磁盘满了就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。

    (SQLiteDatabase既代表了与数据库的连接,又能执行sql语句)

  • 相关阅读:
    VMware WorkStation 用 VMTools 官方下载地址 windows-vmtools tools-windows
    LeetCode Golang 9.回文数
    CentOS6.5中配置Rabbitmq3.6.6集群方案
    python之lambda、filter、map、reduce的用法讲解
    跨主机容器之间通信实现方式:etcd+flanned
    mongo3.4安装
    centos 时区的更改 UTC TO CST
    Elasticsearch5安装
    docker1.*.*版本安装
    使用weave来实现多宿主机中的docker容器之间通信
  • 原文地址:https://www.cnblogs.com/jyiqing/p/8029602.html
Copyright © 2011-2022 走看看