`

sqlite数据库操作基础(一)

阅读更多
一、SqliteHelper类建立表



package com.peacebird.birdnest.db;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

import com.peacebird.birdnest.utils.UserInfo;

public class SqliteHelper extends SQLiteOpenHelper{

    //用来保存UserID、Access Token、Access Secret


    public static final String TB_NAME="users";

    public SqliteHelper(Context context, String name, CursorFactory factory, int version) {

        super(context, name, factory, version);

    }

    //创建表

    @Override

    public void onCreate(SQLiteDatabase db) {

        db.execSQL("CREATE TABLE IF NOT EXISTS "+

                TB_NAME+"("+

                UserInfo.ID+" integer primary key,"+
                UserInfo.USERNAME+" varchar"+

                ")"

                );

        Log.e("Database","onCreate");

    }

    //更新表

    @Override

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

        db.execSQL("DROP TABLE IF EXISTS " + TB_NAME);

        onCreate(db);

        Log.e("Database","onUpgrade");

    }

    //更新列

    public void updateColumn(SQLiteDatabase db, String oldColumn, String newColumn, String typeColumn){

        try{

            db.execSQL("ALTER TABLE " +

                    TB_NAME + " CHANGE " +

                    oldColumn + " "+ newColumn +

                    " " + typeColumn

            );

        }catch(Exception e){

            e.printStackTrace();

        }

    }

}


二、DataHelper类进行表的操作



package com.peacebird.birdnest.db;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
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 android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.util.Log;

import com.peacebird.birdnest.utils.UserInfo;


public class DataHelper {

    //数据库名称

    private static String DB_NAME = "mysinaweibo.db";

    //数据库版本

    private static int DB_VERSION = 2;

    private SQLiteDatabase db;

    private SqliteHelper dbHelper;

    

    public DataHelper(Context context){

        dbHelper=new SqliteHelper(context,DB_NAME, null, DB_VERSION);

        db= dbHelper.getWritableDatabase();

    }

    

    public void Close()

    {

        db.close();

        dbHelper.close();

    }

    //获取users表中的UserID、username的记录

    /**
     * TODO Put here a description of what this method does.
     *
     * @return
     */
    public List<UserInfo> GetUserList()

    {

        List<UserInfo> userList = new ArrayList<UserInfo>();

        Cursor cursor=db.query(SqliteHelper.TB_NAME, null, null, null, null, null, UserInfo.ID+" DESC");

        cursor.moveToFirst();

        while(!cursor.isAfterLast()&& (cursor.getString(1)!=null)){

            UserInfo user=new UserInfo();

            user.setId(cursor.getString(0));
            user.setUserName(cursor.getString(1));
            userList.add(user);
            cursor.moveToNext();

        }

        cursor.close();

        return userList;

    }

    

    //判断users表中的是否包含某个UserID的记录

    public Boolean HaveUserInfo(String userName)

    {

        Boolean b=false;

        Cursor cursor=db.query(SqliteHelper.TB_NAME, null, UserInfo.USERNAME + "=" + userName, null, null, null,null);

        b=cursor.moveToFirst();

        Log.e("HaveUserInfo",b.toString());

        cursor.close();

        return b;

    }

    

    //更新users表的记录,根据UserId更新用户昵称和用户图标

    public int UpdateUserInfo(String userName,Bitmap userIcon,String UserId)

    {

        ContentValues values = new ContentValues();

        values.put(UserInfo.USERNAME, userName);

        // BLOB类型  

        final ByteArrayOutputStream os = new ByteArrayOutputStream();  

        // 将Bitmap压缩成PNG编码,质量为100%存储          

        userIcon.compress(Bitmap.CompressFormat.PNG, 100, os);   

        // 构造SQLite的Content对象,这里也可以使用raw  

        values.put(UserInfo.USERICON, os.toByteArray());

        int id= db.update(SqliteHelper.TB_NAME, values, UserInfo.USERID + "=" + UserId, null);

        Log.e("UpdateUserInfo2",id+"");

        return id;

    }

    

    //更新users表的记录

    public int UpdateUserInfo(UserInfo user)

    {

        ContentValues values = new ContentValues();

        values.put(UserInfo.USERID, user.getUserId());

        values.put(UserInfo.TOKEN, user.getToken());

        values.put(UserInfo.TOKENSECRET, user.getTokenSecret());

        int id= db.update(SqliteHelper.TB_NAME, values, UserInfo.USERID + "=" + user.getUserId(), null);

        Log.e("UpdateUserInfo",id+"");

        return id;

    }

    

    //添加users表的记录

    public Long SaveUserInfo(UserInfo user)

    {

        ContentValues values = new ContentValues();

        values.put(UserInfo.ID, user.getUserId());

        values.put(UserInfo.USERNAME, user.getUserName());

        Long uid = db.insert(SqliteHelper.TB_NAME, UserInfo.ID, values);

        Log.e("SaveUserInfo",uid+"");
        return uid;

    }

    

    //删除users表的记录

    public int DelUserInfo(String UserId){

        int id=  db.delete(SqliteHelper.TB_NAME, UserInfo.USERID +"="+UserId, null);

        Log.e("DelUserInfo",id+"");

        return id;

    }

}




分享到:
评论

相关推荐

    Android实验报告Sqlite数据库操作.pdf

    Android SQLite 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...

    Qt sqlite 数据库操作封装

    总结起来,Qt的SQLite数据库操作封装涉及到以下几个关键点: 1. 生成和打开数据库文件。 2. 执行SQL语句,包括查询、插入、更新和删除。 3. 设计接口,提供增删改查的重载功能。 4. 实现事务管理,确保数据一致性。 ...

    IOS sqlite数据库操作

    在`sqlitDemo`项目中,你可能可以找到一个简单的SQLite数据库操作示例,包括创建数据库、表格,以及插入、查询、更新和删除数据等操作。通过研究这个示例,你可以更好地理解如何在实际的iOS应用中使用SQLite数据库。

    SQLite数据库操作demo

    这个"SQLite数据库操作demo"旨在提供一个基础的示例,帮助初学者了解如何在Android环境中进行SQLite数据库的创建、查询、更新和删除等基本操作。 首先,Android中的SQLite数据库操作通常涉及以下步骤: 1. **创建...

    VB6.0 操作SQLite 数据库的完整示例代码

    在VB6.0中操作SQLite数据库,是一种将轻量级、高性能的SQLite数据库与传统的Visual Basic编程环境相结合的方法。SQLite是一种自包含、无服务器、零配置、事务性的SQL数据库引擎,广泛应用于移动设备、嵌入式系统以及...

    C++操作sqlite数据库

    新建数据库和表是使用C++操作sqlite数据库的基本步骤之一。首先,需要创建一个名为student.db的数据库,然后创建student表、course表和teacher表。创建表时,需要使用 sqlite3_open函数打开数据库连接,然后使用 ...

    实验十 使用SQLite数据库存储数据

    通过这个实验,你应该能够创建一个简单的Android应用,使用SQLite数据库存储用户数据,并能进行基本的CRUD操作。同时,理解并掌握以上知识点将有助于你构建更复杂、更健壮的Android应用。在实际项目中,你还需要关注...

    VB 6.0操作Sqlite数据库(查询、添加、更新、删除)

    在VB 6.0中操作SQLite数据库涉及到一系列的步骤和技术,包括连接数据库、执行SQL语句(查询、添加、更新和删除数据)以及处理结果。SQLite是一个轻量级的、自包含的数据库引擎,适用于各种应用程序,特别是那些需要...

    android基本SQLite数据库操作的增删改查demo

    在本示例"android基本SQLite数据库操作的增删改查demo"中,开发者创建了一个用于管理停车位查询的应用,其中涉及到了对SQLite数据库的基础操作:增加数据(Add)、查询数据(Query)、删除数据(Delete)以及修改...

    Android SQLite数据库操作Demo

    这个"Android SQLite数据库操作Demo"项目将帮助你理解如何在实际应用中与SQLite数据库进行交互,包括基本的CRUD操作以及事务处理,这些都是Android开发中不可或缺的部分。通过实践这个Demo,你可以深入理解SQLite...

    SQLite数据库逆向分析1

    在SQLite数据库逆向分析中,我们需要使用VS编写一个简单的数据库操作程序,以便于了解数据库的实现机理和数据结构。通过编写程序,我们可以了解数据库的数据结构和实现机理。 12. 获取软件访问 SQLite 数据库的句柄...

    JavaScript操作SQLite数据库Demo

    虽然它不被推荐用于新项目,但这个Demo仍然可以作为理解客户端数据库操作的基础。 首先,你需要创建一个数据库实例: ```javascript var db = openDatabase('myDB', '1.0', 'My Database', 2 * 1024 * 1024); ``` ...

    SQLite数据库打开工具

    SQLite是一款轻量级的、开源的、自包含的SQL数据库...了解如何创建数据库、操作表、执行查询以及管理事务,这些都是使用SQLite数据库的基础。通过学习和实践,你将能够更好地利用SQLite这一强大而灵活的数据库系统。

    js 访问 sqlite数据库

    JavaScript是一种广泛用于网页和网络应用的脚本语言,通常用于客户端的交互和数据处理。...理解这些技术的工作原理,掌握基本的数据库操作和异步编程技巧,以及关注性能和安全,是成功实现这一目标的关键。

    SQLite 数据库查看器

    其次,SQL语句执行功能是数据库操作的基础。在SQLite数据库查看器中,用户可以输入各种SQL命令来执行数据查询、插入、更新和删除等操作。这种命令行操作模式,不仅效率高,而且可以针对特定数据执行精确的操作,对于...

    android 操作sqlite数据库源码

    通过这个源码实例,开发者可以学习到如何在Android应用中有效地操作SQLite数据库,理解基本的数据操作流程以及如何处理数据库版本变更。这不仅对于初学者来说是宝贵的实践资源,对于经验丰富的开发者也有助于复习和...

    WinForm操作SQLite 数据库

    6. **CRUD操作**:创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete)是数据库操作的基本功能。在`DataAccess.cs`中,可能会有对应的方法,如`InsertRecord()`, `GetAllRecords()`, `UpdateRecord()`, `...

    C# SQLite数据库操作

    总结来说,C#结合System.Data.SQLite库提供了强大且灵活的SQLite数据库操作能力,无论是创建数据库、定义表结构,还是进行增删改查等操作,都可以通过简单的代码实现。在VS2008环境下,开发者可以借助这个工具包快速...

    Android之Sqlite数据库操作实例

    总的来说,Android的SQLite数据库操作涉及创建数据库和表、插入、查询、更新和删除数据等核心操作。开发者需要理解`SQLiteOpenHelper`的作用,熟悉SQL语句,并能灵活运用到具体场景中。通过这样的实践,你可以更好地...

    用c#操作sqlite数据库

    本文将深入探讨如何使用C#语言来操作SQLite数据库,这不仅包括基本的CRUD(创建、读取、更新、删除)操作,还涵盖了更高级的功能,如查询优化、数据类型处理以及异常管理。 ### 一、连接数据库 在C#中操作SQLite...

Global site tag (gtag.js) - Google Analytics