Android SQLite DB的封装

DbOpenHelper:

package com.example.db_demo01.DB;

import android.content.Context;

import android.database.sqlite.SQLiteDatabase;

import android.database.sqlite.SQLiteOpenHelper;

public class DbOpenHelper extends SQLiteOpenHelper {

private static String name = "mydb.db";    //数据库名

private static int version = 1;            //版本号

public DbOpenHelper(Context context) {

super(context, name, null, version);

}

@Override

public void onCreate(SQLiteDatabase db) {

String sql = "create table person(id integer primary key autoincrement, name varchar(64), address varchar(64))";

db.execSQL(sql);     //创建表

}

@Override

public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2){

//更新表结构时要同时更新版本号

}

}

DB操作的封闭:

package com.example.db_demo01.DB;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import android.content.Context;

import android.database.Cursor;

import android.database.sqlite.SQLiteDatabase;

public class DB {

private DbOpenHelper helper = null;

public DB(Context context){

helper = new DbOpenHelper(context);

}

public boolean ExecSQL(String sql){

boolean flag = false;

SQLiteDatabase database = null;

try {

database = helper.getWritableDatabase();

database.execSQL(sql);

flag = true;

} catch (Exception e) {

e.printStackTrace();

}finally{

if(database != null){

database.close();

}

}

return flag;

}

//插入

public boolean Insert(String sql){

return ExecSQL(sql);

}

//删除

public boolean Delete(String sql){

return ExecSQL(sql);

}

//更新

public boolean Update(String sql){

return ExecSQL(sql);

}

//查询

public List<Map<String, String>> Query(String sql){

SQLiteDatabase database = null;

List<Map<String, String>> list = new ArrayList<Map<String, String>>();

try {

database = helper.getWritableDatabase();

Cursor cursor = database.rawQuery(sql, null);

int colums = cursor.getColumnCount();

while(cursor.moveToNext()){

Map<String, String> map = new HashMap<String, String>();

for(int i=0; i<colums; i++){

String cols_name = cursor.getColumnName(i);

String cols_value = cursor.getString(cursor.getColumnIndex(cols_name));

if(cols_value == null){

cols_value = "";

}

map.put(cols_name, cols_value);

}

list.add(map);

}

} catch (Exception e) {

e.printStackTrace();

}finally{

if(database != null){

database.close();

}

}

return list;

}

}

单元测试类:

package com.example.db_demo01.test;

import java.util.ArrayList;

import java.util.List;

import java.util.Map;

import android.test.AndroidTestCase;

import com.example.db_demo01.DB.DB;

import com.example.db_demo01.DB.DbOpenHelper;

public class MyTest extends AndroidTestCase {

public MyTest(){}

public void createDb(){

DbOpenHelper helper = new DbOpenHelper(getContext());

helper.getWritableDatabase();

}

public void insert(){

DB db = new DB(getContext());

String sql = "insert into person(name, address) values(‘邓‘, ‘zhbit‘)";

db.Insert(sql);

}

public void delete(){

DB db = new DB(getContext());

String sql = "delete from person where name = ‘邓‘";

System.out.println(db.Delete(sql));

}

public void update(){

DB db = new DB(getContext());

String sql = "update person set name = ‘邓2‘ where name = ‘邓‘";

System.out.println(db.Delete(sql));

}

public void query(){

DB db = new DB(getContext());

String sql = "select * from person";

List<Map<String, String>> list = new ArrayList<Map<String, String>>();

list = db.Query(sql);

System.out.println(list.toString());

}

}

时间: 2024-08-04 05:23:49

Android SQLite DB的封装的相关文章

Android Sqlite 工具类封装

鉴于经常使用 Sqlite 数据库做数据持久化处理,进行了一点封装,方便使用. 该封装类主要支持一下功能 支持多用户数据储存 支持 Sqlite数据库升级 支持传入 Sql 语句建表 支持 SQLiteDatabase 基本操作.比如:execSQL.rawQuery.insert等等 解决了数据库并发问题 先贴上封装类代码 /** * * @ClassName: DataBaseOpenHelper * @Description: 数据库工具类 * @author lhy * @date 20

Android Sqlite的操作

1.写一个类继承SQLiteOpenHelper public class MyHelper extends SQLiteOpenHelper { public MyHelper(Context context) { super(context, Const.DB_DBNAME , null, Const.DB_VERSION); // TODO Auto-generated constructor stub } @Override public void onCreate(SQLiteData

Android SQLite数据库操作示例

SQLite介绍 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能.此外,它还是开源的,任何人都可以使用它. SQLite由以下几个组件组成:SQL编译器.内核.后端以及附件.SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试.修改和扩展SQLite的内核变得更加方便. SQLite支持的数据类型参考链接:http://blog.csdn.net/wzy_1988/article/details/36005947 Android在运行时(

【原创】android——SQLite实现简单的注册登陆(已经美化)

1,Main_activity的xmL配置 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 2 xmlns:tools="http://schemas.android.com/tools" 3 android:layout_width="match_parent" 4 android:layout_height="match_pa

【原创】android——SQLite的cmd命令的基本操作

步骤:enter为按键 1,开始—>运行—>输入cmd  (enter) 2,输入adb shell  (enter) 3, cd data/data/应用包名/databases  (enter) 4, ls (查看目录下的数据库)   (enter) 5,sqlite3  数据库名.db;   (enter) 6,SQL语句操作表,注意标点符号一定是在英文输入法下 7,示例: [原创]android--SQLite的cmd命令的基本操作,布布扣,bubuko.com

Android Sqlite基本命令

要查看数据库,首先必须要找到db文件,如果拷贝到电脑上,查看的方法比较多,在手机上,用命令查看比较直接和方便. 首先要找到数据库的位置,一般数据库时存放在程序的私有目录,所以要获取root权限. 确保开发工具已经连接上手机,打开命令行,输入adb shell 这时还没有获取root权限,输入su,手机会弹出提示,允许获取root权限 后缀变为"#",成功获取root权限,这时可以进入应用程序的私有目录, 输入cd data/data/程序包名/databases/,进入数据库的目录 下

Android SQLite的使用,基本的增删改查效果,以及ListView的效果显示

1 package com.example.sqlitetest; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import android.content.ContentValues; 6 import android.content.Context; 7 import android.database.Cursor; 8 import android.database.sqlite.SQLiteDatabase; 9

Android+Sqlite 实现古诗阅读应用(二)

传送门:Android+Sqlite 实现古诗阅读应用(一):http://www.cnblogs.com/lfk-dsk/p/4492974.html Hi,又回来了,最近接到很多热情洋溢的小伙伴们的来信,吼开心哈,我会继续努力的=-=! 上回的东西我们做到了有个textview能随机选择诗来进行显示,这也是我做这个东西的初衷,我想找我到底有哪些古诗没有读过,更想感受一下风吹哪页看哪页的闲适(扯远了=-=!),所以功能现在差不多算是结束了, 不过一个古诗应用这么丑可不行,还有就是,我找到了我要

Android SQLite总结(一)

前言 对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松的完成对数据的存取.下面就向大家介绍一下SQLite常用的操作方法.本篇文章主要用到SQLiteDatabase的一些函数.废话少说,直接贴代码!由于数据库中操作的对象时Student类,因此我们看一下Student.java代码: [java]   view plain copy <EMBED id=ZeroClipboardMovie_1 name=ZeroClipboardMovie_1 ty