SQLiteOpenHelper是一个抽象类,要使用它必须写一个类继承它。SQLiteOpenHelper有两个抽象方法onCreate()和onUpgrade(),我们要在类里面重写这两个方法来实现创建和更新数据库。

    SQLiteOpenHelper类里还有两个重要实例的方法getReadableDatabase和getWritableDatabase(),这两个方法都可以打开或者创建一个数据库。不同的是,当数据库不可写入的时候,例如磁盘空间已满的时候,getReadableDatabase()方法以只读的形式打开数据库,而getWritableDatabase()方法会出现异常。

    重写SQLiteOpenHelper类的两个构造方法一般使用参数少的那个,它接受四个参数,第一个参数为context上下文,第二个参数是表名,第三个参数允许我们在查询数据的时候返回一个自定义的Cursor,一般传入null即可。第四个参数是当前数据库的版本号,可用于对数据库进行升级。

    构建出SQLiteOpenHelper的实例之后,再调用它的getReadableDatabase()或者getWritableDatabase()去创建数据库。

    eg:

      创建一个名字为MyDatabase.db的数据库,新建一张User表,表中有id(主键),name,password属性。

      创建User表的建表语句如下:

      create table User{

        id integer primary key autoincrement,//integr: 整形  primary key:主键,唯一键  autoincrement:自增长

        name text,//text:文本类型,另外real为浮点型,blob二进制类型

        password text)

      在代码中执行这条SQL语句,完整如下:

        

public class MyDatabaseHelper extends SQLiteOpenHelper {

public static final String CREATE_USER = "create table uer ("
+ "id integer primary key autoincrement, "
+ "name text, "
+ "password text, "
)";
private Context mContext;
public MyDatabaseHelper(Context context, String name, CursorFactory
factory, int version) {
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_USER);
Toast.makeText(mContext, "Create succeeded", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}

  

      

    

【Android】数据库的简单应用——创建数据库的更多相关文章

  1. 在linux系统下检查postgresql数据库安装,登录数据库及简单的查看数据库

    1.    检查Linux系统是否安装数据库 首先查看自己的系统是否安装了postgresql数据库命令如下: rpm -qa | grep postgresql 如果没有显示查询结果(如下图所示)说 ...

  2. MySQL数据库实验:任务一 创建数据库和表

    目录 任务一 创建数据库和表 [实训目的与要求] [实训原理] [实训步骤] 一.熟悉MySQL环境 二.利用MySQL命令行窗口创建数据库及表 三.利用界面工具创建数据库及表 任务一 创建数据库和表 ...

  3. 数据库入门(mySQL):创建数据库

    基于JetBrains DataGrip创建数据库.SQL语句创建数据库 MySQL数据库存储引擎和数据类型 创建数据库表及基本操作 导出数据库.删除数据库.导入数据库 一.基于JetBrains D ...

  4. MVC CodeFirst简单的创建数据库(非常详细的步骤)

       最近在学习MVC的开发,相信有过开发经验的人初学一个新的框架时候的想法跟我一样最关心的就是这个框架如何架构,每个架构如何分工,以及最最关键的就是如何与数据库通信,再下来才是学习基础的页面设计啊等 ...

  5. Android——SQLite数据库(一)创建数据库、创建表、初始化数据

    xml <Button android:layout_width="match_parent" android:layout_height="wrap_conten ...

  6. sqlserver 简单的创建数据库

    简简单单,作为不是牛逼的程序来说,这是很容易忘记的sql语句: use mastergo --判断是否存在该数据库if exists(select *from Sysdatabases where n ...

  7. Django Setting文件配置和简单的创建数据库字段

    Django Settings文件配置 静态文件配置 STATIC_URL = '/static/' # 静态文件配置 STATICFILES_DIRS = [ os.path.join(BASE_D ...

  8. asp.net core 使用EF7 Code First 创建数据库,同时使用命令创建数据库

    1.首先下载vs2015的Asp.Net Core(RC2)的插件工具(https://www.microsoft.com/net/core#windows)2.创建一个asp.net Core的项目 ...

  9. mysql数据库的基本操作:创建数据库、查看数据库、修改数据库、删除数据库

    本节相关: 创建数据库 查看数据库 修改数据库 删除数据库 首发时间:2018-02-13 20:47 修改: 2018-04-07:考虑到规范化,将所有语法中“关键字”变成大写;以及因为整理“mys ...

随机推荐

  1. OSI/RM网络7层体系

    转自OSI/RM网络7层体系 1 物理层 这是整个OSI参考模型的最低层,它的任务就是提供网络的物理连接.所以,物理层是建立在物理介质上(而不是逻辑上的协议和会话),它提供的是机械和电气接口.主要包括 ...

  2. eMMC尺寸

    eMMC Physical Specifications主要有四种结构,pin角定义及功能上基本一致,主要是看应用平台的需求: AA:12mm*16mm 169Pin  AB:12mm*18mm 16 ...

  3. 【Xamarin开发 Android 系列 7】 Android 结构基础(下)

    原文:[Xamarin开发 Android 系列 7] Android 结构基础(下) *******前期我们不打算进行太深入的东西,省的吓跑刚进门的,感觉门槛高,so,我们一开始就是跑马灯一样,向前 ...

  4. bzoj1406

    这道题很有意思 我们解过线性同余方程,也解过同余方程 这个则是求x^2≡1 (mod p) 可以将问题转化为(x-1)(x+1)≡0 (mod p) 然后我们穷举一下p的约数i, 看i|x-1,p/i ...

  5. JS 利用数组拼接html字符串

    var cc = []; cc.push('<td colspan=' + fields.length + ' style="padding:10px 5px;border:0;&qu ...

  6. 转载--C++中struct与class

    转自:http://www.cnblogs.com/york-hust/archive/2012/05/29/2524658.html 1. C++中的struct对C中的struct进行了扩充,它已 ...

  7. OpenJDK 8 on Windows

    OpenJDK官网提供了非Windows已编译版本的下载. JDK 8的Windows安装版本目前网上提供有两种版本: 1.RED HAT发布的OpenJDK 8 Windows版 2.ojdkbui ...

  8. 提高IIS的并发量

    IIS 7.0使用的是默认配置,服务器最多只能处理5000个同时请求. 根据相关文档调整设置,可以让服务器从设置上支持10万个同时请求 . 调整IIS 7应用程序池队列长度 由原来的默认1000改为6 ...

  9. Boost库

    2014-08-31 Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其中有些内容有望成 ...

  10. Bzoj 2456: mode 数论,众数

    2456: mode Time Limit: 1 Sec  Memory Limit: 1 MBSubmit: 2843  Solved: 1202[Submit][Status][Discuss] ...