以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新 删除)操作

DBAdapter数据库辅助类

package com.databses;  

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;  

public class DBAdapter {  

    static final String KEY_ROWID = "_id";
    static final String KEY_NAME = "name";
    static final String KEY_EMAIL = "email";
    static final String TAG = "DBAdapter";  

    static final String DATABASE_NAME = "mydb";
    static final String DATABASE_TABLE = "contacts";
    static final int DATABASE_VERSION = 1;
    final Context context;  

    //创建表sql语句
    static final String DATABASE_CREATE = "create table contacts (_id integer primary key autoincrement,name text not null,email text not null)";  

    SQLiteDatabase db;
    DatabaseHelper dBHelper;  

    public DBAdapter(Context context){
        this.context = context;
        dBHelper = new DatabaseHelper(context);
    }  

    //数据库辅助类 继承SQLiteOpenHelper
    private static class DatabaseHelper extends SQLiteOpenHelper{
        public DatabaseHelper(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }  

        //创建数据库
        @Override
        public void onCreate(SQLiteDatabase db) {
            try {
                db.execSQL(DATABASE_CREATE);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        //升级数据库版本
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.w(TAG, "upgrading db from version "+oldVersion+"to"+newVersion+",which will destory all old data");
            db.execSQL("drop table if exists contacts");
            onCreate(db);
        }
    }  

    //打开数据库
    public DBAdapter open() throws SQLException
    {
        db = dBHelper.getWritableDatabase();
        return this;
    }  

    //关闭数据库
    public void close(){
        dBHelper.close();
    }  

    //插入一条联系人记录
    public long insertContact(String name,String email){
        ContentValues initalValues = new ContentValues();
        initalValues.put(KEY_NAME,name);
        initalValues.put(KEY_EMAIL, email);
        return db.insert(DATABASE_TABLE, null, initalValues);
    }  

    //删除一条记录
    public boolean deleteContact(long rowId){
        return db.delete(DATABASE_TABLE,KEY_ROWID+"="+rowId,null)>0;
    }  

    //查询所有联系人
    public Cursor getAllContacts()
    {
        return db.query(DATABASE_TABLE, new String[]{KEY_ROWID,KEY_NAME,KEY_EMAIL},null, null, null, null, null, null);
    }  

    //查询一条记录
    public Cursor getContact(long rowId) throws SQLException{
        Cursor cursor = db.query(true, DATABASE_TABLE, new String[]{KEY_ROWID,KEY_NAME,KEY_EMAIL}, KEY_ROWID+"="+rowId, null, null, null, null, null);
        if(cursor != null){
            cursor.moveToFirst();
        }
        return cursor;
    }  

    //更新一个联系人
    public boolean updateContact(long rowId,String name,String email){
        ContentValues contentValues = new ContentValues();
        contentValues.put(KEY_NAME, name);
        contentValues.put(KEY_EMAIL, email);
        return db.update(DATABASE_TABLE, contentValues, KEY_ROWID+"="+KEY_ROWID, null)>0;
    }
}  

DatabaseActivity

package com.databses;  

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;  

public class DatabasesActivity extends Activity {  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_databases);
        DBAdapter dbAdapter = new DBAdapter(this);  

        dbAdapter.open();
        dbAdapter.insertContact("weiwei", "[email protected]");
        dbAdapter.insertContact("Jackson", "[email protected]");  

    }  

}  

以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新 删除)操作,布布扣,bubuko.com

时间: 2024-08-05 09:08:47

以编程的方式使用SQLite数据库 执行CRUD(创建 读取 更新 删除)操作的相关文章

Android数据的四种存储方式之SQLite数据库

Test.java: /** * 本例解决的问题: * 核心问题:通过SQLiteOpenHelper类创建数据库对象 * 通过数据库对象对数据库的数据的操作 * 1.sql语句方式操作SQLite数据库 * 2.谷歌提供的api对SQLite数据库的操作 * 3.SQLite对事务的操作 */ import com.ghsy.createsqlitedb.db.MyOpenHelper; import android.content.ContentValues; import android.

使用Android中API建议的方式实现SQLite数据库的增、删、改、查的操作

package com.examp.use_SQLite.dao; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.examp

Android中API建议的方式实现SQLite数据库的增、删、改、查的操作

package com.examp.use_SQLite.dao; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.examp

Android Sqlite数据库执行插入查询更新删除的操作对比

下面是在Android4.0上,利用Sqlite数据库的insert,query,update,delete函数以及execSql,rawQuery函数执行插入,查询,更新,删除操作花费时间的对比结果. 是在执行相同的动作,记录条数也一样的情况下的对比,多次验证的结果是: (1)如果批量执行的记录数在1000条,则Android SqliteDatabase提供的insert,query,update,delete函数和直接写SQL文的execSql,rawQuery的效率差不多,几乎一样.所以

Android数据库表的创建和数据升级操作

之前的文章有提到,可以在xml文件中配置数据库信息:http://www.cnblogs.com/wenjiang/p/4492303.html,现在就讲如何利用这些信息类构建数据库. xml文件大概如下: <?xml version="1.0" encoding="utf-8"?> <database> <!-- 数据库名称 --> <dbname value="zwb.db"></dbna

踩坑(Running)填坑(ZSSURE):SQLite数据库操作效率分析

背景: 之前对于数据库操作部分大多停留在会使用阶段,并未真正考虑过数据库SQL语句的执行效率问题.近期响应项目组其他成员需要,协助手动修改数据库.为了提高工作效率编写了C#测试工程进行相关操作.由于数据库记录量较大(超过10K条),在编写程序过程中发现不同的操作执行效率相差甚远,特做记录如下,待后续有时间再深入分析各种数据库的SQL语句的执行效率. 此次数据库修改要求涉及到删除.修改.添加等各种操作,为了简单对比各种方式下程序的执行效率,只选择"删除"操作进行分析.详情如下: for循

Android数据存储引擎---SQLite数据库

目标:是否可以在PC端桌面上使用SQLite数据库制作一个财务文件? 目录: 来源: 实践: 总结和比较: SQLite数据简介 是什么,内部结构是怎样的,数据库和表的关系是什么 有什么用 常用的操作是什么 SQLite数据库使用 增 删 改 查 SQLite数据库实践上的优化措施 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,使我们轻松完成对数据的存取. 步骤1,熟悉创建数据库表,熟悉相关的操作指令,实现对SQLite数据库的感性认识 创建一个包含简单内容的数

Android中SQLite数据库小计

2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for the Enterprise>.学习目标: 学习Android对SQL的支持. 理解在Java中使用SQL——通过SQLiteDatabase类. 创建数据库——SQLiteOpenHelper类. 理解loaders.cursors和adapters. 为了在程序中使用本地的,结构化的数据,需要完成

数据存储与访问之——初见SQLite数据库

      本节引言: 本节学习Android数据库存储与访问的第三种方式:SQLite数据库,和其他的SQL数据库不同,我们并不需要在手机上另外安装一个数据库手机软件,Android系统已经集成了这个数据库,我们无需像使用其他数据库软件(Oracle,MSSQL,MySql等)又要安装,然后完成相关配置,又要改端口之类的!       1.基本的概念 1)SQLite是什么?为什么要用SQLite?SQLite有什么特点? 答:下面本姑娘来为大家讲解 SQLite是一个轻量级的关系型数据库,运