android sqlite 的简单应用------增删查改

Android sqlite 系统自带数据库的应用

SQLite 简介

SQLite 是用C语言编写的并且是开源的嵌入式数据库引擎它支持大多数的SQL92标准不仅仅是可以在所有主要的操作系统上运行,而且任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite.

SQLite 由以下几个部分组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便(所有的SQL语句都被编译成易读的,可以在SQLite虚拟机中运行的程序集SQLite的整体结构如下图所示:

Sqlite的特点:

1、 小小的sqlite竟然可以支持高达2TB大小的数据库,而且每个数据库都是以单个文本的形式存在,这些数据都是以B-TREE的数据结构形式存储在磁盘上。

2、在事务处理方面,sqlite通过数据库上的独立性和共享性来实现独立事务处理。意思就是说多个进程可以在同一时间从同一数据库读取数据,但是只有一个可以写数据,因此,想在某个进程或线程中进行写操作时,必须获得独占锁,在获得独占锁之后其他的读或写操作就不会再发生。

3、SQLite 采用的是动态数据类型,一般支持的类型有:null、integer、real、text和blob(即空值,整形,浮点型,字符串文本、二进制对象)。当我们向数据库里边新增一些数据时,sqlite就会自动检查相对应字段的类型,如果该类型与关联的列不匹配,那么它将会尝试将该值转换成该列所对应的类型,如果不能转换,则将该值作为本身的数据类型存储,而sqlite将这种类型称之为“弱类型”。但是INTEGER PRIMARY KEY 不能转换成其他类型,会报“datatype middmstch”的错。

SQLite 的使用-----创建数据库、新增、修改、查询、删除、

 

创建数据库

Android 系统为我们的应用程序 SQLite数据库但是在使用时必须自己创建数据库,然后创建表、索引,填充数据。Android 提供了 SQLiteOpenHelper 帮助你创建一个数据库,你只要继承 SQLiteOpenHelper 类,就可以轻松的创建数据库SQLiteOpenHelper 类根据开发应用程序的需要,封装了创建和更新数据库使用的逻辑。SQLiteOpenHelper 的子类,至少需要实现三个方法:

· 构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。如下所示:

public DBHelper(Context context) {

        super(context, name, factory, version); 工厂的使用默认值为空

super(context, DATABASE_NAMEnullDATABASE_VERSION);

}

     DATABASE_NAMEDATABASE_VERSION这两个变量是实现定义好的

· onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。

public void onCreate(SQLiteDatabase db) {

 

//创建user表,字段名为(id ,name ,age ,info)

db.execSQL("CREATE TABLE IF NOT EXISTS USER" + "(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCGAR,age INTEGER,sex STRING,address STRING,info STRING)");

}

 

· onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。

 

新增

SQLite新增的方法有:

· db.executeSQL(String sql); 

· db.executeSQL(String sql, Object[] bindArgs);//sql语句中使用占位符,然后第二个参数是实际的参数集 

· db.insert(String table, String nullColumnHack, ContentValues values); 

· db.insertOrThrow(String table, String nullColumnHack, ContentValues values); 

 

1>db.execSQL("Insert into user values(null,?,?,?,?,?)",new Object[] {user.name,user.age,user.sex,user.address,user.info});

2>//ContentValues以键值对的形式存放数据 

//ContentValues cv = new ContentValues(); 

//cv.put("name", person.name); 

//cv.put("age", person.age); 

//插入ContentValues中的数据 

//db.insert("person", null, cv); 

查询的方法有:

db.rawQuery(String sql, String[] selectionArgs); 

db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy); 

db.query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit); 

db.query(String distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit); 

修改的方法有:

db.update(String table, Contentvalues values, String whereClause, String whereArgs); 

删除的方法有:

db.delete(String table, String whereClause, String whereArgs); 

 

 代码下载:http://download.csdn.net/detail/greatsuny/7616787

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值