一、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 数据库操作报告 一、实验目的 Android 实验报告的主要目的是熟悉 Android 平台的文件操作、掌握 Android SQLite 数据库的设计和应用、熟悉 XML 和 JSON 文件的读取。通过本实验,用户可以掌握 ...
总结起来,Qt的SQLite数据库操作封装涉及到以下几个关键点: 1. 生成和打开数据库文件。 2. 执行SQL语句,包括查询、插入、更新和删除。 3. 设计接口,提供增删改查的重载功能。 4. 实现事务管理,确保数据一致性。 ...
在`sqlitDemo`项目中,你可能可以找到一个简单的SQLite数据库操作示例,包括创建数据库、表格,以及插入、查询、更新和删除数据等操作。通过研究这个示例,你可以更好地理解如何在实际的iOS应用中使用SQLite数据库。
这个"SQLite数据库操作demo"旨在提供一个基础的示例,帮助初学者了解如何在Android环境中进行SQLite数据库的创建、查询、更新和删除等基本操作。 首先,Android中的SQLite数据库操作通常涉及以下步骤: 1. **创建...
在VB6.0中操作SQLite数据库,是一种将轻量级、高性能的SQLite数据库与传统的Visual Basic编程环境相结合的方法。SQLite是一种自包含、无服务器、零配置、事务性的SQL数据库引擎,广泛应用于移动设备、嵌入式系统以及...
新建数据库和表是使用C++操作sqlite数据库的基本步骤之一。首先,需要创建一个名为student.db的数据库,然后创建student表、course表和teacher表。创建表时,需要使用 sqlite3_open函数打开数据库连接,然后使用 ...
通过这个实验,你应该能够创建一个简单的Android应用,使用SQLite数据库存储用户数据,并能进行基本的CRUD操作。同时,理解并掌握以上知识点将有助于你构建更复杂、更健壮的Android应用。在实际项目中,你还需要关注...
在VB 6.0中操作SQLite数据库涉及到一系列的步骤和技术,包括连接数据库、执行SQL语句(查询、添加、更新和删除数据)以及处理结果。SQLite是一个轻量级的、自包含的数据库引擎,适用于各种应用程序,特别是那些需要...
在本示例"android基本SQLite数据库操作的增删改查demo"中,开发者创建了一个用于管理停车位查询的应用,其中涉及到了对SQLite数据库的基础操作:增加数据(Add)、查询数据(Query)、删除数据(Delete)以及修改...
这个"Android SQLite数据库操作Demo"项目将帮助你理解如何在实际应用中与SQLite数据库进行交互,包括基本的CRUD操作以及事务处理,这些都是Android开发中不可或缺的部分。通过实践这个Demo,你可以深入理解SQLite...
在SQLite数据库逆向分析中,我们需要使用VS编写一个简单的数据库操作程序,以便于了解数据库的实现机理和数据结构。通过编写程序,我们可以了解数据库的数据结构和实现机理。 12. 获取软件访问 SQLite 数据库的句柄...
虽然它不被推荐用于新项目,但这个Demo仍然可以作为理解客户端数据库操作的基础。 首先,你需要创建一个数据库实例: ```javascript var db = openDatabase('myDB', '1.0', 'My Database', 2 * 1024 * 1024); ``` ...
SQLite是一款轻量级的、开源的、自包含的SQL数据库...了解如何创建数据库、操作表、执行查询以及管理事务,这些都是使用SQLite数据库的基础。通过学习和实践,你将能够更好地利用SQLite这一强大而灵活的数据库系统。
JavaScript是一种广泛用于网页和网络应用的脚本语言,通常用于客户端的交互和数据处理。...理解这些技术的工作原理,掌握基本的数据库操作和异步编程技巧,以及关注性能和安全,是成功实现这一目标的关键。
其次,SQL语句执行功能是数据库操作的基础。在SQLite数据库查看器中,用户可以输入各种SQL命令来执行数据查询、插入、更新和删除等操作。这种命令行操作模式,不仅效率高,而且可以针对特定数据执行精确的操作,对于...
通过这个源码实例,开发者可以学习到如何在Android应用中有效地操作SQLite数据库,理解基本的数据操作流程以及如何处理数据库版本变更。这不仅对于初学者来说是宝贵的实践资源,对于经验丰富的开发者也有助于复习和...
6. **CRUD操作**:创建(Create)、读取(Retrieve)、更新(Update)和删除/Delete)是数据库操作的基本功能。在`DataAccess.cs`中,可能会有对应的方法,如`InsertRecord()`, `GetAllRecords()`, `UpdateRecord()`, `...
总结来说,C#结合System.Data.SQLite库提供了强大且灵活的SQLite数据库操作能力,无论是创建数据库、定义表结构,还是进行增删改查等操作,都可以通过简单的代码实现。在VS2008环境下,开发者可以借助这个工具包快速...
总的来说,Android的SQLite数据库操作涉及创建数据库和表、插入、查询、更新和删除数据等核心操作。开发者需要理解`SQLiteOpenHelper`的作用,熟悉SQL语句,并能灵活运用到具体场景中。通过这样的实践,你可以更好地...
本文将深入探讨如何使用C#语言来操作SQLite数据库,这不仅包括基本的CRUD(创建、读取、更新、删除)操作,还涵盖了更高级的功能,如查询优化、数据类型处理以及异常管理。 ### 一、连接数据库 在C#中操作SQLite...