一.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  sqlitestudio-2.1..bin

./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. 【练习】移动数据---解决null值

    1.创建数据文件: [oracle@host03 ~]$ vi base_data.dat ,zhangfei,zhangyide ,guanyu,guanyunchang ,liubei,liuxu ...

  2. linux sed 添加 删除 一行

    find . -type f -name "*.lua" | xargs sed -i '1 i \#!\/usr\/bin\/lua' #一行前添加(文件至少有一行) 复制自: ...

  3. onethink上传图片(资源)和预览

    直接上干货 不废话了 普通上传:  onthink框架 后台已经有图片和文件上传功能 controller里只需: public function addPicture(){ /* 调用文件上传组件上 ...

  4. linux yum 命令

    linux yum 命令 yum( Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 基於RPM包管理,能够从指 ...

  5. sql: 去除数据库表中tab、空格、回车符等特殊字符的解决方法

    去除tab.空格.回车符等使用replace语句 按照ASCII码, SELECT char(64) 例如64 对应 @,则select REPLACE('abc@qq.com',char(64),' ...

  6. 转 Jmeter之Bean shell使用(二)

    上一篇Jmeter之Bean shell使用(一)简单介绍了下Jmeter中的Bean shell,本文是对上文的一个补充,主要总结下常用的几种场景和方法,相信这些基本可以涵盖大部分的需求.本节内容如 ...

  7. ActiveMQ学习笔记(5)——使用Spring JMS收发消息

      摘要 ActiveMQ学习笔记(四)http://my.oschina.net/xiaoxishan/blog/380446 中记录了如何使用原生的方式从ActiveMQ中收发消息.可以看出,每次 ...

  8. SQL server 2005中的锁(1)

    在之前的一片随笔中,简单的说了一下SQL Server中的隔离级别.而SQL Server的隔离级别是通过锁的机制来实现的.现在深入一下,谈谈SQL Server中的锁. 开始之前,先要定义一下前提: ...

  9. Android开发--仿微信语音对讲录音

    原文地址:http://www.2cto.com/kf/201502/378704.html 自微信出现以来取得了很好的成绩,语音对讲的实现更加方便了人与人之间的交流.今天来实践一下微信的语音对讲的录 ...

  10. 画图解释SQL联合语句

    画图解释SQL联合语句 http://blog.jobbole.com/40443/ 我认为 Ligaya Turmelle 的关于SQL联合(join)语句的帖子对于新手开发者来说是份很好的材料.S ...