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 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的使用的更多相关文章
- 八、Android学习第七天——XML文件解析方法(转)
(转自:http://wenku.baidu.com/view/af39b3164431b90d6c85c72f.html) 八.Android学习第七天——XML文件解析方法 XML文件:exten ...
- centos环境下创建数据库和表的方法
centos环境下创建数据库和表的方法 //查询数据库的命令: mysql> SHOW DATABASES; +--------------------+ | Database ...
- Android学习四:数据库操作
1前言 android中使用SQLite作为数据库,在进行相关的开发的时候不需要导入包.SQLite起符合SQL标准,也有自己的一些特性,是一个轻量级的数据库. 2代码 简单的数据库类封装 packa ...
- android 学习随笔四(数据库存储)
SQLite数据库(sqliteexpert工具),sqlite数据库是轻量级数据库,对数据类型要求不是很严格,在数据库中处理是按verchar类型处理,一般定义表字段时还是要求严格按照数据类型定义, ...
- Android学习(十) SQLite 基于SQLiteOpenHelper的操作方式
main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns ...
- 在 Android Studio 上调试数据库 ( SQLite ) (转)
转自:http://c.colabug.com/thread-1781696-1-1.html 以前 Eclipse 时代,调试 SQLite 都是将数据库文件导出到电脑,然后再用软件打开查看.现在我 ...
- SQLite3学习笔记----创建数据库的两种方式
今天研究学习SQLite,刚开始创建数据库,就遇到了一个坑,是自己粗心了,特记录一下. 实验环境: OS:Ubuntu18.04 创建数据库名称:test.db 实验步骤: 1.检查是否已经安装了SQ ...
- [转] Oracle学习之创建数据库(新建实例)
由于项目需求,在本机中开发,需要新建oracle数据库实例,亲测可以. 出处:http://blog.csdn.NET/luiseradl/article/details/6972217 http:/ ...
- SQL学习笔记——创建数据库显示:文件激活错误,物理文件名不存在>>解决方案
今天在创建数据库时,跟着老师一步一步的操作创建成功,但出于在厌恶冗长的数据库存储路径,于是,擅自更改了数据filename,让他保存在电脑桌面新建的文件夹,可是一执行就报错了. 老师源码: 1 cre ...
随机推荐
- org.springframework.dao.InvalidDataAccessApiUsageException: Parameter value [41] did not match expected type [java.lang.Integer (n/a)];
题记:以前记录过一些自己遇到的BUG,这个行为,让我一看报错的提示信息就能定位到问题的所在,后来记得比较多了,好多是重复性的再加上比较忙就没有详细的记录了,今天的工作量比较小,就顺便记录一下,以便以后 ...
- Python3.x和Python2.x的区别
1.性能 Py3.0运行 pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可 以取得很好的优化结果. Py3.1性能比Py2 ...
- 2015.05.14:codesmith
安装: 安装好codesmith会有两个软件:一个编译器(CodeSmith Generator Explorer),一个生成工具(CodeSmith Generator Studio) 破解: 一般 ...
- 用Python遍历目录
用Python遍历指定目录下的文件,一般有两种常用方法,但它们都是基于Python的os模块.下面两种方法基于Python2.7,主要用到的函数如下: 1.os.listdir(path):列出目录下 ...
- matplotlib 显示中文 与 latex冲突
如果在使用中文之前包含了使用latex的语法: mpl.rcParams['text.usetex'] = True 将不能正确显示含有中文的图片. 附 显示中文的方法: from matplotli ...
- dos命令记录以及dos下通过进程id查找工作路径
dos命令 tasklist |findstr "1696" 通过进程id查看进程名 tasklist 列出所有进程 netstat -ano 查看当前网络通信进程连接的各种状态 ...
- php中的魔术方法
__construct 构造器是一个魔术方法,当对象被实例化时它会被调用.在一个类声明时它常常是第一件做的事但是没得必要他也像其他任何方法在类中任何地方都可以声明,构造器也能像其他方法样继承.如果我们 ...
- MSSQL订阅库索引对齐
需求如下图: 在原来的架构中是每台web服务器都固定访问某一台数据库服务器,所以就造成了每台数据库订阅服务器上的索引不一致.现在的需求就是要把所有的订阅库上的索引调整为一致,为了就是实现高可用+负载均 ...
- 微信公众平台开发 微信JSSDK开发
根据微信开发文档步骤如下: 1.先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”. JS接口安全域名设置 mi.com(前面不用带www/http,域名必须备案过) 2.引 ...
- ArcEngine中打开各种数据源(WorkSpace)的连接
(SDE.personal/File.ShapeFile.CAD数据.影像图.影像数据集) ArcEngine 可以接受多种数据源.在开发过程中我们使用了如下几种数据源 1.企业数据库(SDE) 企业 ...