博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android下创建一个SQLite数据库
阅读量:6988 次
发布时间:2019-06-27

本文共 3914 字,大约阅读时间需要 13 分钟。

数据库:SQLite(轻量级,嵌入式的数据库)

大量的相似结构的数据的储存,快速的查询。特殊的文件(按照一定的格式生成)

数据库的创建

创建文件

1.声明文件对象,文件是不会被创建出来的。

File file = new File("文件名称");

2.写文件(文件才会被创建出来)

FileOutputStream fos = new FileOutputStream(file);

fos.write("hdahfdsaklfh".getbytes());

创建数据库

1.实现SQLiteOpenHelper的子类PersonSQLiteOpenHelper

public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {    public PersonSQLiteOpenHelper(Context context, String name,            CursorFactory factory, int version) {        super(context, name, factory, version);        // TODO Auto-generated constructor stub    }    @Override    public void onCreate(SQLiteDatabase arg0) {        // TODO Auto-generated method stub    }    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub    }}

SQLiteOpenHelper的几个参数的解释如下:

android.database.sqlite.SQLiteOpenHelper.SQLiteOpenHelper(Context context, String name, CursorFactory factory, int version)Create a helper object to create, open, and/or manage a database. This method always returns very quickly. The database is not actually created or opened until one of getWritableDatabase or getReadableDatabase is called.Parameters:context to use to open or create the databasename of the database file, or null for an in-memory databasefactory to use for creating cursor objects, or null for the defaultversion number of the database (starting at 1); if the database is older, onUpgrade will be used to upgrade the database; if the database is newer, onDowngrade will be used to downgrade the database

2.getWritableDatabase/getReadableDatabase()

新建TestPersonDB.java

package com.wuyudong.db.test;import com.wuyudong.db.PersonSQLiteOpenHelper;import android.test.AndroidTestCase;public class TestPersonDB extends AndroidTestCase {    public void testCreateDB() throws Exception {        PersonSQLiteOpenHelper helper = new PersonSQLiteOpenHelper(getContext());        helper.getWritableDatabase();    }}

3.onCreate() 数据库第一次创建的执行的方法,适合做数据库表结构的初始化

// Called when the database is created for the first time.    // 在数据库第一次创建的时候执行的方法    // 如果数据库已经创建完毕,就不会再去执行了。    // 适合做数据库表结构的初始化操作    // db代表的就是当前的数据库    @Override    public void onCreate(SQLiteDatabase db) {        // 初始化数据库的表结构        db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))");    }

注意:

sqlite数据库是一个嵌入式轻量级的数据库,内部不区分数据类型的,不对数据的长度校验。

新建AndroidTest工程test

将AndroidManifest.xml中的如下相关的代码复制到本项目的AndroidManifest.xml中

复制后的代码如下:

项目结构如下:

PersonSQLiteOpenHelper.java完整代码如下:

package com.wuyudong.db;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class PersonSQLiteOpenHelper extends SQLiteOpenHelper {    /**     * 定义一个数据库创建的帮助类,里面有两个方法需要实现 相当于 file类     *      * @author Administrator     *      */    public PersonSQLiteOpenHelper(Context context) {        // context 上下文        // person.db 数据库文件名称        // factory 游标工厂        // version 数据库的版本号 从1开始        super(context, "person.db", null, 1);        // TODO Auto-generated constructor stub    }    // Called when the database is created for the first time.    // 在数据库第一次创建的时候执行的方法    // 如果数据库已经创建完毕,就不会再去执行了。    // 适合做数据库表结构的初始化操作    // db代表的就是当前的数据库    @Override    public void onCreate(SQLiteDatabase db) {        // 初始化数据库的表结构        db.execSQL("create table person (id integer primary key autoincrement, name varchar(20), number varchar(20))");    }    // 当数据库的版本号发生升级的时候调用。    // 数据库只能升级不能降级。    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {        // TODO Auto-generated method stub    }}

运行程序

打开person.db

转载地址:http://umwvl.baihongyu.com/

你可能感兴趣的文章
oracle优化:避免全表扫描(高水位线)
查看>>
对超级课程表产品的一些个人小看法
查看>>
词频统计 效能分析
查看>>
Linux终极shell-zsh的完美配置方案!——oh-my-zsh
查看>>
MYSQL 函数、自定义函数 function
查看>>
Python爬虫之简单爬虫框架实现
查看>>
python isinstance内建函数的使用
查看>>
老师不能把你怎样,但外面的世界可以!
查看>>
css居中div的几种常用方法
查看>>
css3
查看>>
根据某个元素做相对定位
查看>>
C# Window编程随记——ClickOnce程序部署
查看>>
小白系列-免费广告路由器web认证设置(2)
查看>>
Top 16 Java 应用类 - 这些功能再也不用自己写了
查看>>
面试题之矩阵与转置矩阵相乘
查看>>
linux光盘、U盘的挂载与卸载
查看>>
linux sudo命令
查看>>
LeetCode-最长回文子串
查看>>
【HDOJ】3400 Line belt
查看>>
JVM Guide
查看>>