zoukankan      html  css  js  c++  java
  • Android学习---如何创建数据库,SQLite(onCreate,onUpgrade方法)和SQLiteStudio的使用

    一.android中使用什么数据库?

    SQLite是遵守ACID的关系数据库管理系统,它包含在一个相对小的C程式庫中。它是D.RichardHipp建立的公有领域项目.SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。

    值得一提的是,android和ios使用的数据库一样,都是SQLite.

    二.如何创建一个数据库?

    1.使用intelij idea创建一个andorid项目

    2.创建如下工具类:

    MyDBHelper.java

    package com.amos.android_database;
    
    import android.content.Context;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.util.Log;
    
    /**
     * Created by amosli on 14-6-10.
     */
    public class MyDBHelper extends SQLiteOpenHelper{
        /**
         * 创建数据库的构造方法
         * @param context 应用程序上下文
         * name 数据库的名字
         * factory 查询数据库的游标工厂一般情况下用sdk默认的
         * version 数据库的版本一般大于0
         */
        public MyDBHelper(Context context) {
            super(context, "test.db", null, 4);
        }
        private String tag = "MyDBHelper.class";
        /**
         * 在数据库第一次创建时会执行
         * @param db
         */
        @Override
        public void onCreate(SQLiteDatabase db) {
            Log.d(tag,"onCreate.....");
            //创建一个数据库
            db.execSQL("create table person (personid integer primary key autoincrement ,name varchar(30) )");
    
        }
    
        /**
         * 更新数据的时候调用的方法
         * @param db
         * @param oldVersion
         * @param newVersion
         */
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.d(tag,"onUpgrade*******");
            //增加一列
            db.execSQL("alter table person add phone varchar(13) null");
    
        }
    }

    MyActivity.java

    package com.amos.android_database;
    
    import android.app.Activity;
    import android.os.Bundle;
    
    public class MyActivity extends Activity {
        /**
         * Called when the activity is first created.
         */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            MyDBHelper myDBHelper = new MyDBHelper(this);
            myDBHelper.getReadableDatabase();
            myDBHelper.close();
    
        }
    }

    3.打开生成的test.db

    1).下载安装SQLiteStudio(SQLite的可视化工具)

    下载地址:http://www.sqlitestudio.pl/ 

    安装:

    chmod 777 sqlitestudio-2.1.5.bin
    
    ./sqlitestudio-2.1.5.bin

    执行上面的linux命令,第一句是赋权限,第二句是打开工具

    2)从avd中导出test.db

    打开DDMS,从data/data/com.amos.andriod_database/databases下导出test.db

    3).用sqlitestudio打开test.db

    添加数据库

    选择test.db

    执行onCreate方法时创建的person表

    执行onUpgrade方法更新语句的时候

    本文源码:https://github.com/amosli/android_basic

  • 相关阅读:
    webpack从零的实践(新手良药)
    throttle和debounce
    call(),apply(),bind() 区别和用法
    vue 路由钩子。
    vue 兄弟组件之间的传值
    JS 面向对象封装 无限轮播 插件。
    element-ui 解决 table 里包含表单验证的问题!
    Vue.nextTick 的原理和用途
    JavaScript中基本数据类型和引用数据类型的区别
    PS批量修改照片大小
  • 原文地址:https://www.cnblogs.com/amosli/p/3781082.html
Copyright © 2011-2022 走看看