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(SQLiteDatabase db) {

db.execSQL(Const.DB_CREATE_TABLE) ;

}

@Override

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

// TODO Auto-generated method stub

}

}

2.定义一个Const类,定义数据库所需的常量

public class Const {

// 定义数据库相关常量

public static final int DB_VERSION = 1;

public static final String DB_DBNAME = "bwl.db";

public static final String DB_TABLENAME = "bwlinfo";

public static final String DB_COLUMN_ID = "_id";

public static final String DB_COLUMN_TITLE = "title";

public static final String DB_COLUMN_CONTENT = "content";

public static final String DB_COLUMN_DATE = "date";

public static final String DB_CREATE_TABLE = "CREATE TABLE " + DB_TABLENAME + "(" + DB_COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + DB_COLUMN_TITLE + " text not null," + DB_COLUMN_CONTENT + " text," + DB_COLUMN_DATE + " text)" ;

// Intent的key常量

// SharedPreferences的Key常量 , 文件名

// 内部存储的文件名

}

3.写操作数据库的方法

// 封装数据库操作

public class DBTool {

private static MyHelper helper ;

private static SQLiteDatabase db ;

// insert

public static long insertData(Context context , BWL bwl) {

openConn(context);

ContentValues values = new ContentValues();

values.put(Const.DB_COLUMN_TITLE, bwl.getTitle());

values.put(Const.DB_COLUMN_CONTENT , bwl.getContent());

values.put(Const.DB_COLUMN_DATE, bwl.getDate());

long rowId = db.insert(Const.DB_TABLENAME, null, values);

closeConn();

return rowId;

}

// update

/**

* 更新记录时只能更新一条

* @param updateId 要更新的数据行id

*/

public static int updateData(Context context , BWL bwl , long updateId) {

openConn(context);

ContentValues values = new ContentValues();

values.put(Const.DB_COLUMN_TITLE, bwl.getTitle());

values.put(Const.DB_COLUMN_CONTENT , bwl.getContent());

values.put(Const.DB_COLUMN_DATE, bwl.getDate());

int result = db.update(Const.DB_TABLENAME, values, Const.DB_COLUMN_ID+"="+updateId, null) ;

closeConn();

return result;

}

/**

* 自定义更新,可以更新多条记录

* @param context

* @param bwl

* @param where  更新条件

* @return  更新的行数

*/

public static int updateData(Context context , BWL bwl , String where) {

openConn(context);

ContentValues values = new ContentValues();

values.put(Const.DB_COLUMN_TITLE, bwl.getTitle());

values.put(Const.DB_COLUMN_CONTENT , bwl.getContent());

values.put(Const.DB_COLUMN_DATE, bwl.getDate());

int result = db.update(Const.DB_TABLENAME, values, where, null) ;

closeConn();

return result;

}

// delete

/**

* 最多删除一行

* @param deleteId 要删除行的id

* @return 删除的行数

*/

public static int deleteData(Context context , long deleteId) {

openConn(context);

int result = db.delete(Const.DB_TABLENAME, Const.DB_COLUMN_ID+"="+deleteId, null);

closeConn();

return result;

}

/**

* 自定义删除

* @param context

* @param where   删除数据的条件

* @return 删除的行数

*/

public static int deleteData(Context context , String where) {

openConn(context);

int result = db.delete(Const.DB_TABLENAME, where, null);

closeConn();

return result;

}

/**

* 根据给定的id,查询该条记录

* @param context

* @param rowId   要查询的数据行id

* @return 如果rowId存在,查找成功,返回BWL对象,如果rowId不存在,返回null

*/

public static BWL selectOne(Context context , long rowId) {

openConn(context);

Cursor cursor = db.query(

Const.DB_TABLENAME , null,

Const.DB_COLUMN_ID+"="+rowId , null,

null, null, null);

BWL bwl = null;

if(cursor.moveToNext()) {

bwl = new BWL(cursor.getLong(0), cursor.getString(1), cursor.getString(2), cursor.getString(3)) ;

}

closeConn();

return bwl;

}

/**

* 按照用户指定的条件进行查询

* @param context

* @param where 查询条件,如果为null,将查询所有数据

* @param order 要排序的列 , 如果为null,将按照默认主键排序

* @param isAsc 排序列的升降序

* @return 查询结果集,如果没有查找到任何数据,返回null

*/

// List<BWL> list = DBTool.selectMore(this, null, Const.DB_COLUMN_DATE, false);

public static List<BWL> selectMore(Context context , String where , String order , Boolean isAsc) {

openConn(context);

String orderStr = "";

if(null != order && order.trim().length() != 0) {

orderStr += order;

if(isAsc != null && !isAsc) {

orderStr += " desc";

}

}

Cursor cursor = db.query(

Const.DB_TABLENAME , null,

where , null,

null, null, orderStr);

if(cursor.getCount() <= 0) {

return null ;

}

List<BWL> list = new ArrayList<BWL>();

while(cursor.moveToNext()) {

list.add(new BWL(cursor.getLong(0), cursor.getString(1), cursor.getString(2), cursor.getString(3))) ;

}

closeConn();

return list;

}

/**

* 执行sql语句

* @param context

* @param sql  要执行的sql语句

*/

public static void execCmd(Context context , String sql) {

openConn(context);

db.execSQL(sql);

closeConn();

}

// 打开连接

private static void openConn(Context context) {

if(null == db) {

if(null == helper) {

helper = new MyHelper(context);

}

db = helper.getWritableDatabase();

}

}

// 关闭连接

private static void closeConn() {

if(null != db) {

db.close();

db = null;

}

}

}

4.对数据库进行操作

BWL bwl = new BWL("星期六", "周末小聚", "2011年");

//        DBTool.insertData(this, bwl);

//

//        BWL bwl2 = new BWL("周末", "去玩", "2011年");

//        DBTool.updateData(this, bwl2, 1);

//

//        BWL bwl3 = new BWL("周五", "去玩", "2011年");

//        DBTool.updateData(this, bwl2, Const.DB_COLUMN_TITLE +" like ‘%周%‘");

//        BWL bwl4 = DBTool.selectOne(this, 2);

//        if(null != bwl4) {

//         Toast.makeText(this, bwl4.toString(), Toast.LENGTH_LONG).show();

//        }

//        List<BWL> list = DBTool.selectMore(this, null, Const.DB_COLUMN_DATE, false);

//        String content = "";

//        for (BWL bwl : list) {

// content += bwl.toString() + "\n";

// }

//        Toast.makeText(this,content, Toast.LENGTH_LONG).show();

//        DBTool.deleteData(this, 1);

//        DBTool.deleteData(this, null);

Android Sqlite的操作,布布扣,bubuko.com

时间: 2024-10-29 00:05:26

Android Sqlite的操作的相关文章

Android SQLite数据库操作示例

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

android sqlite数据库操作

sqlite有一点不同于其他常见数据库,就是sqlite数据库是存成文件的,可以直接把该文件从手机里导出来,以文件的形式存在,然后放到电脑上查看. Android操作数据库有如下步骤: 1.继承SQLiteOpenHelper,实现里面的方法. public class MyDbHelper extends SQLiteOpenHelper {     public MyDbHelper(Context context) {         super(context, "db3", 

Android数据存储之SQLite的操作

Android作为一个应用在移动设备上的操作系统,自然也就少不了数据的存储.然而SQLite作为一个轻型的关系型数据库,基于其轻量.跨平台.多语言接口及安全性等诸多因数考虑,因而Android较大的数据存储采用了SQLite.SQLite与大多数关系型数据库一样都遵循ACID,语法也非常相似.只要您懂得mysql.sqlserver等关系型数据库的操作,只要查看下SQLite的官方文档便可快速上手.SQLite语法您可通过http://sqlite.org/lang.html进行查看. 接下来看

[Android] SQLite数据库之增删改查基础操作

    在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Unix等主流操作系统,同一时候可以跟非常多程序语言如C#.PHP.Java等相结合.以下先回想SQL的基本语句,再讲述Android的基本操作. 一. adb shell回想SQL语句     首先,我感觉自己整个大学印象最深的几门课就包含<数据库>,所以想先回想SQL增删改查的基本语句.而在And

【Android】实验8 SQLite数据库操作2016.5.13

实验8  SQLite数据库操作 [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机上联系人的名称.点击联系人的姓名可以显示联系人的详细信息.在按了MEMU键之后会弹出菜单栏.单击菜单栏上的按钮可以添加联系人和删除联系人 [过程] (1)确定数据库的数据结构.本程序只要一张表,该表的内容及说明如下表所示 字段名称 数据类型 说明 字段名称 数据类型 声明 _id Integer 所

android SQLite使用SQLiteOpenHelper类对数据库进行操作

链接地址:http://byandby.iteye.com/blog/835580 一. SQLite介绍 SQLite是android内置的一个很小的关系型数据库. SQLite的官网是http://www.sqlite.org/,可以去下载一些文档或相关信息. 博客中有一篇有稍微详细一点的介绍,大家可以去看一下. 二. SQLiteOpenHelper的使用方法 SQLiteOpenHelper是一个辅助类来管理数据库的创建和版本. 可以通过继承这个类,实现它的一些方法来对数据库进行一些操作

Android——使用SQLiteDatabase操作SQLite数据库

除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据. 在Android平台上,集成了一个嵌入式关系型数据库-SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型只有五种,但实际上sqlite3也接受varchar(n).char(n).decimal(p,s) 等数据类型,只不过在运算或保存时会转成对应的五种数据类型. SQLite最大的特点是

Android Sqlite对Date类型操作总结

首先,sqlite数据库在时间处理上和sqlserver还有oracle不同,下面根据自己做过的实例总结一下. 创建了一个Log数据表: LogID SourceID OperatorID LogType LogLevel LogTime              LogContent 1 aaa.aspx 0 2 1 2011-08-18 16:44:32.000 aaaa 2 bbb.aspx 1 2 2 2011-08-18 16:38:32.000 bbbb 3 ccc.aspx 2 3

[Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类1

[Android] Android 使用 Greendao 操作 db sqlite(2)-- 封装DaoUtils类 原文地址:https://www.cnblogs.com/wukong1688/p/10725092.html