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

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

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

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

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

2.创建如下工具类:

MyDBHelper.java

  1. package com.amos.android_database;
  2.  
  3. import android.content.Context;
  4. import android.database.sqlite.SQLiteDatabase;
  5. import android.database.sqlite.SQLiteOpenHelper;
  6. import android.util.Log;
  7.  
  8. /**
  9. * Created by amosli on 14-6-10.
  10. */
  11. public class MyDBHelper extends SQLiteOpenHelper{
  12. /**
  13. * 创建数据库的构造方法
  14. * @param context 应用程序上下文
  15. * name 数据库的名字
  16. * factory 查询数据库的游标工厂一般情况下用sdk默认的
  17. * version 数据库的版本一般大于0
  18. */
  19. public MyDBHelper(Context context) {
  20. super(context, "test.db", null, 4);
  21. }
  22. private String tag = "MyDBHelper.class";
  23. /**
  24. * 在数据库第一次创建时会执行
  25. * @param db
  26. */
  27. @Override
  28. public void onCreate(SQLiteDatabase db) {
  29. Log.d(tag,"onCreate.....");
  30. //创建一个数据库
  31. db.execSQL("create table person (personid integer primary key autoincrement ,name varchar(30) )");
  32.  
  33. }
  34.  
  35. /**
  36. * 更新数据的时候调用的方法
  37. * @param db
  38. * @param oldVersion
  39. * @param newVersion
  40. */
  41. @Override
  42. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  43. Log.d(tag,"onUpgrade*******");
  44. //增加一列
  45. db.execSQL("alter table person add phone varchar(13) null");

  46. }
  47. }

MyActivity.java

  1. package com.amos.android_database;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5.  
  6. public class MyActivity extends Activity {
  7. /**
  8. * Called when the activity is first created.
  9. */
  10. @Override
  11. public void onCreate(Bundle savedInstanceState) {
  12. super.onCreate(savedInstanceState);
  13. setContentView(R.layout.main);
  14. MyDBHelper myDBHelper = new MyDBHelper(this);
  15. myDBHelper.getReadableDatabase();
  16. myDBHelper.close();

  17. }
  18. }

3.打开生成的test.db

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

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

安装:

  1. chmod sqlitestudio-2.1..bin
  2.  
  3. ./sqlitestudio-2.1..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

Android学习---如何创建数据库,SQLite(onCreate,onUpgrade方法)和SQLiteStudio的使用的更多相关文章

  1. 八、Android学习第七天——XML文件解析方法(转)

    (转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...

  2. centos环境下创建数据库和表的方法

    centos环境下创建数据库和表的方法 //查询数据库的命令: mysql> SHOW DATABASES; +--------------------+ | Database         ...

  3. Android学习四:数据库操作

    1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...

  4. android 学习随笔四(数据库存储)

    SQLite数据库(sqliteexpert工具),sqlite数据库是轻量级数据库,对数据类型要求不是很严格,在数据库中处理是按verchar类型处理,一般定义表字段时还是要求严格按照数据类型定义, ...

  5. Android学习(十) SQLite 基于SQLiteOpenHelper的操作方式

    main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...

  6. 在 Android Studio 上调试数据库 ( SQLite ) (转)

    转自:http://c.colabug.com/thread-1781696-1-1.html 以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看.现在我 ...

  7. SQLite3学习笔记----创建数据库的两种方式

    今天研究学习SQLite,刚开始创建数据库,就遇到了一个坑,是自己粗心了,特记录一下. 实验环境: OS:Ubuntu18.04 创建数据库名称:test.db 实验步骤: 1.检查是否已经安装了SQ ...

  8. [转] Oracle学习之创建数据库(新建实例)

    由于项目需求,在本机中开发,需要新建oracle数据库实例,亲测可以. 出处:http://blog.csdn.NET/luiseradl/article/details/6972217 http:/ ...

  9. SQL学习笔记——创建数据库显示:文件激活错误,物理文件名不存在>>解决方案

    今天在创建数据库时,跟着老师一步一步的操作创建成功,但出于在厌恶冗长的数据库存储路径,于是,擅自更改了数据filename,让他保存在电脑桌面新建的文件夹,可是一执行就报错了. 老师源码: 1 cre ...

随机推荐

  1. assert断言基础用法

    Python的assert是用来检查一个条件,如果它为真,就不做任何事.如果它为假,则会抛出AssertError并且包含错误信息

  2. 11,SFDC 管理员篇 - 报表和数据的可视化

    1,Report Builder 1,每一个report type 都有一个 primay object 和多个相关的object 2,Primary object with related obje ...

  3. 解决linux yum无法安装mysql

    yum源中默认好像是没有mysql的.为了解决这个问题,我们要先下载mysql的repo源. 1. 下载mysql的repo源 wget http://repo.mysql.com/mysql-com ...

  4. ViewState提交后丢失,竟然是OnInit搞的鬼

    提交后报错,断点看ViewStat值没有了.排查半天完全不知道怎么回事. 百度搜索了下ViewState提交丢失.然后CSDN一个帖子说的半拉子话提点了我. 然后想到我经常重写这些函数.以前怎么没遇到 ...

  5. mongodb ubuntu下自启动

    个人测试开发的时经常会采用shell 启动mongodb,当进入项目团队开发测试时,必须让mongodb可以随系统自启动. 1.编写启动命令 sudo vim /etc/rc/local 1-1 mo ...

  6. java 平台 权限管理

    最近在做公司内部的物流业务平台的权限管理,感触颇多.记录一下 权限管理分两部分:数据权限和操作权限. 数据权限: 这个是和用户相关的. 因为平台是多机构的,所以再考虑数据权限的时候,是按照机构来管理的 ...

  7. How to: Convert Between Various String Types

      This topic demonstrates how to convert various Visual C++ string types into other strings. The str ...

  8. Sort命令使用

    查看haproxy日志的某一时间段的关于某个url的访问IP降序排序:           注意:排序(sort)在去重(uniq)之后使用 p 指的是从包含某一个字符到某一字符的区间的所有行打印输出 ...

  9. STP的作用和操作

    STP的作用 STP通过阻塞端口来消除环路,并能够实现链路备份的目的 STP的操作 选举一个根桥 比较交换机的桥ID,越小越优先 桥ID  是8个字节,2个字节的优先级+6个字节的MAC地址 2.每个 ...

  10. js对象(一)

    1.创建对象 /*直接创建*/ var person = new Object(); person.name = "宝宝"; person.age = 3; var person2 ...