当前位置:文档之家› 第5章 SQLite数据库

第5章 SQLite数据库


设置事务标志为 成功,当事务结 束时,提交事务
} finally {
db.endTransaction();
关闭数据库事务
db.close();
}
5.3.3 实战演练——绿豆通讯录
1 功能描述: 创建通讯录实现添加,查询,修改,删除联系人信息。
SQLite数据库的使用。
2 技术要点:
①用户交互界面的设计与实现 3 实现步骤: ②界面逻辑代码的设计与实现
5.4.1 ListView控件
用列表形式展示具体数据内容,如果显 示过多,则会出现垂直滚动条。
<ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="match_parent
• ContentValues是一种存储的机制,常用于数据库的操作。 只能存储基本类型。
第6章 数据存储与访问
update( )方法
SQLiteDatabase的 update( )方法如下定义: public int update (String table, ContentValues values,
}
5.3.2 SQLite事务操作
• 事务是对数据库的一组操作,它可以由一条或多条SQL 语句组成,同一个事务的操作具备同步的特点,如果有 一条语句无法执行,那么所有语句都不会执行。也就是 说,事务中的语句要么都执行,要么都不执行。
银行转账
转入
转出
操作都执行,或都不执行
MyHelper helper = new MyHelper(getContext());
第6章 数据存储与访问
delete( )方法
SQLiteDatabase的delete( )方法如下定义: public int delete (String table, String whereClause,
String[] whereArgs) 该方法删除表中指定的行,返回值为被删除的行数, Delete From inforamtion Where _id= ?
Company Logo
3.删除数据
public int delete1(long id){ SQLiteDatabase db = helper.getWritableDatabase(); int number = db.delete("information", "_id=?", new
String[]{id+""}); db.close(); return number; }
常用数据适配器(BaseAdapter)
基本的适配器,使用BaseAdapter时需要实现四个方法。
方法名称
功能描述
public int getCount()
得到Item条目的总数
public Object getItem(int position)
根据position得到某个Item的对象
public long getItemId(int
用于加载xml布局。
常用数据适配器(SimpleAdapter)
• 继承自BaseAdapter,实现了BaseAdapter的四个抽象方 法并进行了封装。 SimpleCursorAdapter
数据集合,data中的每一项对应 Context上下文对象 着ListView中的每一项的数据。
public SimpleAdapter(Context context, List<? extends Map<String, ?>> data , int resource, String[] from, int[] to);
Item布局的资源idMap集I合tem里布面局的相ke应y值的。控件id。
"> </ListView>
5.4.2 常用数据适配器
– ListView控件显示数据需要进行数据适配。 Android提供一系列适配器对ListView进行数据适 配。 它就像转换器,把复杂数据按人们易于接受方 式来展示。
– 列表的适配器类型,分为以下三种: ArrayAdapter : 通常只能展示一行字符 SimpleAdapter :可以自定义出各种效果 SimpleCursorAdapter BaseAdapter:基本的适配器,包含4个抽象方法。
ContentValues values) 第二个参数是用于指定空值字段的名称。 当插入的数 据行为空行或values参数值为null,将指定的这个列分 量值设为null,再插入数据库。
Company Logo
MyHelper helper=new MyHelper (this); 1. 插入一条数据
SQLiteDatabase db = helper.getWritableDatabase();
db.beginTransaction();
开启数据库事务
try {
db.execSQL("update person set account=account-1000 where
name =?",new Object[] { "zhangsan" });
Select top 20 percent columns
From table
Where _id=?
Order by _id desc
Group by groupBy
Having having
Company Logo
4.查询一条数据
public boolean find(long id){
SQLiteDatabase db=helper.getReadableDatabase(); Cursor c = db.query(“information", null, "_id=?", new String[]{id+””}, null, null, null); boolean result =c.moveToNext(); c.close(); db.close(); return result;
public void add(String name, String price) { SQLiteDatabase db=helper.getWritableDatabase(); ContentValues cv =new ContentValues(); cv.put("name",name); cv.put(“price", price); db.insert(“information", null, cv); db.close();
String whereClause,new String[] whereArgs) 更新表中指定行的数据,返回值为被更新的行的数量。 Upate informtion Set price= price Where name=?
Company Logo
2.修改一条数据
public int update1(String name, String price) { SQLiteDatabase db=helper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(“price", price); int number= db.update(“information", values, “name=?”, new String[]{name}); db.close(); return number; }
第6章 数据存储的Query ( )方法如下定义:
public Cursor query (String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
5.3 数据库的常用操作
– Android SDK提供的一系列操作SQLite数据库的API, 它提供了一些列用于操作数据库的方法。
第6章 数据存储与访问
insert( )方法
SQLiteDatabase的 insert( )方法如下定义: public int insert (String table, String nullColumnhack,
• SQLite遵守ACID特性。ACID是指数据库事务正确执行 的基本要素,原子性、一致性、隔离性、持久性。
• 支持主流操作系统如windows/Linux/UNIX,和C#、 PHP、Java结合性很好,处理速度比MySQL快。
• SQLite没有服务器进程,通过文件(.db)保存数据, 该文件是跨平台的,可以放在其他平台中使用。并且支 持 NULL、INTEGER、REAL(浮点数字)、TEXT(字 符串文本)和BLOB(二进制对象)五种数据类型。
db.execSQL("update person set account=account+1000 where
name =?",new Object[] { "wangwu" });
db.setTransactionSuccessful();
}catch (Exception e) { Log.i("事务处理失败", e.toString());
根据position得到某个Item的id
position)
相关主题