Android Sqlite数据库是一个怎样的数据库?

答:是一种嵌入式小型设备,移动设备,的数据库,应用在穿戴设备(例如:智能手表,计算手环 等等),移动设备(例如:Android系统类型的手机 等等),属于嵌入式关系型数据库。

在Android开发过程中,只需调用Android所提供的Sqlite API接口,底层会调用Sqlite.c 程序去生成数据库,创建表字段 等等;

虽然在Android Sqlite3 支持了 null,integer,real,char(n),varchar(n),decimal(p,s),这些类型,但是 请注意:除了ID唯一主键是integer类型,其他所有类型,最后都会变成TEXT类型。

在Android API中提供了,SQLiteOpenHelper对数据库创建,管理操作等;

创建表的语句:create table student_table(_id integer primary key autoincrement, name text);

  1. import android.content.Context;
  2. import android.database.DatabaseErrorHandler;
  3. import android.database.sqlite.SQLiteDatabase;
  4. import android.database.sqlite.SQLiteOpenHelper;
  5. public class MySQLiteOpenHelper extends SQLiteOpenHelper {
  6. /**
  7. * 数据库的名称
  8. */
  9. private static final String DATABASE_NAME = "PersonDB.db";
  10. /**
  11. * 数据库的版本号,以后要升级数据库,修改版本号为 +1 即可
  12. */
  13. private static final int DATABASE_VERSION = 1;
  14. private static MySQLiteOpenHelper instance;
  15. /**
  16. * 单例模式
  17. * @param context 传入上下文
  18. * @return 返回MySQLiteOpenHelper对象
  19. */
  20. public static MySQLiteOpenHelper getInstance(Context context) {
  21. if (null == instance) {
  22. synchronized (MySQLiteOpenHelper.class) {
  23. if (null == instance) {
  24. instance = new MySQLiteOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
  25. }
  26. }
  27. }
  28. return instance;
  29. }
  30. // 构造方法不对外暴露
  31. private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
  32. super(context, name, factory, version);
  33. }
  34. // 构造方法不对外暴露
  35. private MySQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version, DatabaseErrorHandler errorHandler) {
  36. super(context, name, factory, version, errorHandler);
  37. }
  38. // 初始化操作,会执行onCreate
  39. @Override
  40. public void onCreate(SQLiteDatabase db) {
  41. // 创建一个 student_table表
  42. db.execSQL("create table student_table(_id integer primary key autoincrement, name text);");
  43. }
  44. // 用于升级数据库,当Version 变动了,就会调用onUpgrade方法
  45. @Override
  46. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  47. }
  48. }

sqLiteOpenHelper.getWritableDatabase();,没有数据库就创建数据库,有数据库就打开数据库。

  1. @Override
  2. public void onClick(View v) {
  3. MySQLiteOpenHelper sqLiteOpenHelper = MySQLiteOpenHelper.getInstance(MainActivity.this);
  4. sqLiteOpenHelper.getWritableDatabase();
  5. }

生成完成:

看看表结构:


谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,

刘德利CSDN博客, http://blog.csdn.net/u011967006

Android SQLiteOpenHelper Sqlite数据库的创建与打开的更多相关文章

  1. Android SQLiteOpenHelper Sqlite数据库升级onUpgrade

    Android Sqlite数据库升级,在Android APP开发之中,非常常见: 在确定原来的数据库版本号之后,在原来数据库版本号+1,就会执行onUpgrade方法,进行数据库升级操作: 在on ...

  2. Android开发SQLite数据库的创建

    package com.example.db; import android.content.Context; import android.database.sqlite.SQLiteDatabas ...

  3. android基础---->SQLite数据库的使用

    SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, Python)都使 ...

  4. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  5. android 一个SQLite数据库多个数据表的基本使用框架 (带demo)

    android 一个SQLite数据库多个数据表(带demo) 前言        demo演示        一.搭建        二.建立实体类        三.建立数据库操作类        ...

  6. Android实现SQLite数据库联系人列表

    Android实现SQLite数据库联系人列表 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个通讯录查看程序: 要求使用SQLite ...

  7. android中sqlite数据库的基本使用和添加多张表

    看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大 ...

  8. Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)

    系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe ...

  9. Qt for Android 打包 SQLite 数据库

    Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面 ...

随机推荐

  1. Python 列表表达式 ,迭代器(1)

    python 环境 3.5 1.列表: s = []; for i in s: i = handleFunction(i); s.append(i) .列表 s=[handleFunction(i) ...

  2. 通过jquery,从json中读取数据追加到html中

    1.下载安装jquery   可通过下面的方法引入在线版本的js: <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jque ...

  3. MyBatis高级查询

    -------------------------siwuxie095 MyBatis 高级查询 1.MyBatis 作为一个 ORM 框架,也对 SQL 的高级查询做了支持, MyBatis 高级查 ...

  4. sqlite小知识

    删除数据时,由于缓存关系,数据了文件大小不会一下子减小,可以通过执行vacuum;或新建表时使用自动整理大小来实现. sqlite的大小理论上可以达到140T. 暂时,使用C的api,只能使用不是.开 ...

  5. 删除排序数组中的重复数字 II · Remove Duplicates from Sorted Array II

    重复一次 [抄题]: 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. [思维问题]: [ ...

  6. .net core webapi 部署windows server 2008 r2 笔记

    WebAPI部署文档 安装dotnet-dev-win-x64.1.0.4 安装DotNetCore.1.1.0-WindowsHosting 安装vc_redist.x64 安装Windows6.1 ...

  7. Linux安装和配置Vim7.4

    一.简介 Vim是一个类似于Vi的文本编辑器,不过在Vi的基础上增加了很多新的特性,Vim普遍被推崇为类Vi编辑器中最好的一个,事实上真正的劲敌来自Emacs的不同变体.1999 年Emacs被选为L ...

  8. PhpStorm 注册相关

    网址 http://idea.lanyus.com/ 最新(2017年9月)PhpStorm 2017.3 .WebStorm 2017.2.5.PyCharm  2016.3激活方式 打开网址 ht ...

  9. [SoapUI] 在执行某个TestSuite之前先执行login或者其他什么前置步骤

    打开TestSuite有一个地方可以设置Setup Script import com.eviware.soapui.model.support.PropertiesMap log.info &quo ...

  10. eclipse缓存太重,新手最容易中招

    有4种方法,从上到下清理: