初次使用SQLiteOpenHelper

插入数据

insert(table, nullColumnHack, values)

table:表名

nullColumnHack:空列的默认值

values:一个封装了列名和列植的Map,代表了一条数据

删除数据

db.delete(table, whereClause, whereArgs)

table:表名

whereClause:删除条件,可以包含通配符“?”

whereArgs:删除条件参数数组,用来填充通配符

查询数据

db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)

table:表名

columns:列名数组

selection:条件where子句,可以包含通配符“?”

groupBy:分组列

having:分组条件

orderBy:排序列

修改数据

db.update(table, values, whereClause, whereArgs)

table:表名 values:更新的记录信息

whereClause:更新的条件,可以包含通配符“?”

whereArgs:更新的条件值数组,用来填充通配符

具体操作可参见一下代码:

public class MyHelper extends SQLiteOpenHelper {

    public static String DB_NAME = "note.db";
    public static String TAB_NAME = "notes";
    public static String ID = "_id";
    public static String CONTENT = "content";
    public static String DATE = "date";
    private SQLiteDatabase db;

    public MyHelper(Context context) {
        super(context, DB_NAME, null, 1);
    }
    /**
     * 创建数据库时调用
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        this.db = db;
        String sql = "create table notes (" + ID
                + " integer primary key autoincrement," + CONTENT + " text,"
                + DATE + " text)";
        //建表
        db.execSQL(sql);
        //插入一些初始数据
        ContentValues values01 = new ContentValues();
        values01.put(CONTENT, "我是初始数据一");
        values01.put(DATE, getdate());
        ContentValues values02 = new ContentValues();
        values02.put(CONTENT, "我是初始数据二");
        values02.put(DATE, getdate());
        db.insert(TAB_NAME, null, values01 );
        db.insert(TAB_NAME, null, values02 );
    }

    /**
     * 获取当前时间
     * @return
     */
    public String getdate() {
        Date dt = new Date();
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String nowTime = df.format(dt);
        return nowTime;
    }

    /**
     * 插入数据
     * @param values
     */
    public void insert(ContentValues values) {
        db = getWritableDatabase();
        db.insert(TAB_NAME, null, values);
        db.close();
    }

    /**
     * 删除数据
     * @param date
     */
    public void delete(String date) {
        db = getWritableDatabase();
        db.delete(TAB_NAME, DATE + "= ? ", new String[] { date });
        db.close();
    }

    /**
     * 查询数据
     * @return
     */
    public Cursor query() {
        db = getWritableDatabase();
        Cursor cursor = db.query(TAB_NAME, null, null, null, null, null, null);
        return cursor;
    }

    /**
     * 更新数据
     * @param values
     * @param date
     */
    public void updata(ContentValues values, String date) {
        db = getWritableDatabase();
        db.update(TAB_NAME, values, DATE + "= ? ", new String[] { date });
    }
    /**
     * 更新数剧库时调用
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}
时间: 2024-12-29 07:07:21

初次使用SQLiteOpenHelper的相关文章

SQLiteOpenHelper类

SQLiteOpenHelper是管理数据库的工具类. 下面提供一个模板: package com.example.intelligencecontrol.utils; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MyDBOpenHelper extends S

centos7 初次开机问题解决办法

centos7初次开机问题解决办法

Android之SQLiteOpenHelper

1.SQLiteOpenHelper SQliteOpenHelper是一个抽象类,来管理数据库的创建和版本的管理.要使用它必须实现它的nCreate(SQLiteDatabase),onUpgrade(SQLiteDatabase, int, int)方法 onCreate:当数据库第一次被建立的时候被执行,例如创建表,初始化数据等. onUpgrade:当数据库需要被更新的时候执行,例如删除久表,创建新表. 2.实现代码 [java] view plaincopy <EMBED id=Zer

使用 SQLiteOpenHelper 对数据库进行操作

SQLiteOpenHelper 是android提供的一个帮助类,这个类是抽象的,通过实现这个类,可以帮助开发者实现对SQLITE数据库的创建以及数据库版本管理,使用SQLiteOpenHelper打开数据库如果数据库存在则不创建,如果不存在则创建它(此时执行的是onCreate方法). public DatabaseHelper(Context context, String name, CursorFactory factory, int version) 第一个参数:Context类型,

初次开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、目前性能还不够好

继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-host测试,但是官方说运行环境的MONO版本至少需要3.4.1,我去年买了个表,至本文发布为止,你让我下地狱去找3.4.1吗,硬着头皮用3.4.0搞了一晚上,MAC一直停留在 httpapi.dll出错,Ubuntu Server 12.0.4 是不认其中的几个DLL包,具体哪几个也忘了,过段时间有了稳定版本再

c++中类的初次接触

下面是我写的简单的代码,初次接触c++中的类,c++真的是博大精深啊,学习c++的路还很长,加油! 1 /*q1.cpp*/ 2 //一个简单的类极其实例化 3 #include<iostream> 4 using namespace std; 5 6 class Point{ 7 public: 8 //设置坐标 9 void setPoint(int x,int y){ 10 xPos = x; 11 yPos = y; 12 } 13 //打印坐标 14 void printPoint(

Local Databases with SQLiteOpenHelper

Overview For maximum control over local data, developers can use SQLite directly by leveraging SQLiteOpenHelper for executing SQL requests and managing a local database. In this guide, we'll use the example of building a database to persist user crea

初次接触scrapy框架

初次接触这个框架,先订个小目标,抓取QQ首页,然后存入记事本. 安装框架(http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/install.html) 创建一个项目,项目根目录输入 scrapy startproject tutorial 在spiders文件夹下面新建一个qq_spider.py,写入内容如下: import scrapy class DmozSpider(scrapy.Spider): name = "dmoz" a

数据库和表的创建(SQLiteOpenHelper)

1.Android为了让我们能够更加方便地管理数据库,专门提供了一个SQLiteOpenHelper帮助类,借助这个类就可以非常简单地对数据库进行创建和升级.SQLiteOpenHelper是一个抽象类,如果想使用它的话,就要创建一个自己的帮助类(这里我们以自己创建的MySqliteHelper类去继承)去继承它.SQLiteOpenHelper中有两个抽象方法,分别是onCreate()和onUpgrade(),我们必须在自己的帮助类里面重写这两个方法,然后在这两个方法中实现创建.升级数据库的