android——SQLite数据库存储(创建)
Android 专门提供了SQLiteOpenHelper帮助类,借助这个类就可以非常简单的对数据库进行创建和升级。
首先SQLiteOpenHelper是一个抽象类,在使用的时候需要创建一个自己的帮助类去继承它。
SQLiteOpenHelper中有两个抽象方法onCreate()和onUpgrade(),在创建自己的帮助类的时候必须重写这两个方法,在这两个方法中分别实现创建、升级数据库的逻辑。
SQLiteOpenHelper中有两个非常重要的实例方法getWritableDatabase()和getReadableDatabase(),这两个方法都可以创建或打开一个现有的数据库(如果数据库已存在就是打开,不存在就会创建一个新的),
SQLiteOpenHelper的构造方法有四个参数,第一个参数是Context,第二个是数据库的名字,第三个是允许我们查询数据的时候返回的一个自定义的Cursor,一般传入null即可,第四个是版本号。
例子:
创建一个名字为Bookstore的数据库,在数据库中建一张Book表,表中有id(主键)、作者,价格、页数、书名。Book表的建表语句如下:
create table Book (
id integer primary key autoincrement,
author text,
price real,
pages integer,
name text)
SQL的数据类型有:integer表示整型,real表示浮点型,text表示文本型,blob表示二进制型,primary key 将id设为主键,autoincrement关键字表示id 列是自增长的。
在代码中,需要执行这个语句,新建一个MyDatabaseHelper类继承自SQLiteOpenhHelper,代码如下:
public class MyDatabaseHelper extends SQLiteOpenHelper { //把定义SQL建表语句成字符串常量
public static final String CREATE_BOOK = "create table Book("
+"id integer primary key autoincrement,"
+"author text,"
+"price real,"
+"pages integer,"
+"name text)"; private Context mContext; //构造方法
public MyDatabaseHelper(Context context,String name,
SQLiteDatabase.CursorFactory factory,int version){
super(context,name,factory,version);
mContext = context;
} //建表
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
Toast.makeText(mContext,"数据库创建成功",Toast.LENGTH_SHORT).show();
} @Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }
}
把定义SQL建表语句成字符串常量,然后在onCreate()中调用SQLiteDatabase的db.execSQL()方法去执行,使用Toast提醒创建成功。
然后在布局文件中加入一个按钮:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"> <Button
android:id="@+id/creat_database"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="建立数据库"/> </LinearLayout>
最后修改MainActivity的代码
public class MainActivity extends AppCompatActivity { private MyDatabaseHelper dbHelper; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); //创建帮助类的实例
dbHelper = new MyDatabaseHelper(MainActivity.this,"BookStore.db",null,1); //注册按钮
Button creatDatabase = (Button) findViewById(R.id.creat_database); //按钮响应
creatDatabase.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dbHelper.getWritableDatabase();
}
}); }
}
在onCreate()中构建了一个MyDatabaseHelper的对象dbHelper,并命名为BookStore.db,版本号1,通过按钮的点击事件去调用dbHelper的getWritableDatabase()方法,去创建数据库。
结果如下图所示:
android——SQLite数据库存储(创建)的更多相关文章
- android——SQLite数据库存储(操作)
public class MyDatabaseHelper extends SQLiteOpenHelper { //把定义SQL建表语句成字符串常量 //图书的详细信息 //ID.作者.价格.页数. ...
- <Android基础> (六) 数据存储 Part 3 SQLite数据库存储
6.4 SQLite数据库存储 SQLite是一种轻量级的关系型数据库,运算速度快,占用资源少. 6.4.1 创建数据库 Android为了管理数据库,专门提供了SQLiteOpenHelper帮助类 ...
- Android学习之基础知识九 — 数据存储(持久化技术)之SQLite数据库存储
前面一讲介绍了数据持久化技术的前两种:文件存储.SharedPreferences存储.下面介绍第三种技术:SQLite数据库存储 一.SQLite数据库存储 SQLite数据库是一款轻量级的关系型数 ...
- Android中数据存储(三)——SQLite数据库存储数据
当一个应用程序在Android中安装后,我们在使用应用的过程中会产生很多的数据,应用都有自己的数据,那么我们应该如何存储数据呢? 数据存储方式 Android 的数据存储有5种方式: 1. Share ...
- Android SQLiteOpenHelper Sqlite数据库的创建与打开
Android Sqlite数据库是一个怎样的数据库? 答:是一种嵌入式小型设备,移动设备,的数据库,应用在穿戴设备(例如:智能手表,计算手环 等等),移动设备(例如:Android系统类型的手机 等 ...
- Android Sqlite 数据库版本更新
Android Sqlite 数据库版本更新 http://87426628.blog.163.com/blog/static/6069361820131069485844/ 1.自己写一个类继承 ...
- Android SQLite数据库增删改查操作
一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库——SQLite,SQLite3支持NULL.INTEGER.REAL(浮点数字). TEXT(字符 ...
- 使用Sqlite数据库存储数据
1.Sql基本命令 1.1.创建表 表是有行和列组成的,列称为字段,行称为记录. 使用CREATE命令来创建表: 1 CREATE TABLE tab_student (studentId INTEG ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
随机推荐
- [常用命令]Git命令
取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone https://github.com/yhj167/yhj167.github.io.git 添加远程版 ...
- Modbus RTU 通信应用案例
如何打开项目归档文件 例程中的TIA博途项目文件与STEP 7项目文件均为归档文件,需要按如下方式打开: TIA博途项目文件 1. 打开TIA博途软件,通过软件左下方“项目视图”按钮切换至项目视图: ...
- Modbus RTU 介绍
S7-1200 Modbus RTU 通信概述 Modbus具有两种串行传输模式:分别为ASCII和RTU.Modbus是一种单主站的主从通信模式,Modbus网络上只能有一个主站存在,主站在Modb ...
- 19.linux文件属性
1.linux文件属性 ls -lih i查看文件inode,h查看文件大小 文件总共10个属性 inode索引节点编号(唯一的) 文件类型和权限,第一个字符为类型,后面字符为权限 硬链接的数量 文件 ...
- pdfminer获取整页文本
#! python2 # coding: utf-8 import sys from cStringIO import StringIO from pdfminer import pdfinterp ...
- 基于IdentityServer4的OIDC实现单点登录(SSO)原理简析
写着前面 IdentityServer4的学习断断续续,兜兜转转,走了不少弯路,也花了不少时间.可能是因为没有阅读源码,也没有特别系统的学习资料,相关文章很多园子里的大佬都有涉及,有系列文章,比如: ...
- java算法题每日一练01,java入门简单算法题小练
1.给数组做反序 public class Ak01 { public static void main(String[] args) { int[] a = new int[]{22,48,41,2 ...
- HTML表单部分学习笔记
第一部分: <!-- action :指定处理提交表单的格式 method :指定提交表单的http方法 enctype:指明用来把表单提交给服务器时的互联网媒体形式 --> <fo ...
- Java编程思想:通配符(后面有两个小节,研究的不够深入)
import java.util.*; public class Test { public static void main(String[] args) { } } /* 15.9 边界 要点: ...
- 你可能不知道的github的秘密
github也可以使用快捷键 先举例子,如何快速查找项目中的文件? 只需要进入项目,并按下T键 在浏览代码时,如何快速跳到指定行? 只需要进入项目,并按下L键 下面是一些常用的快捷键 聚焦搜索栏 按下 ...