Android SQLite API的使用(非原创)
1.使用SQLite的API来进行数据库的添加、删除、修改、查询
package com.example.sqlitedatabase.test; import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.test.AndroidTestCase; import com.example.sqlitedatabase.MyOpenHelper; public class JunitTest2 extends AndroidTestCase{ private MyOpenHelper helper;
private SQLiteDatabase db; @Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
helper = new MyOpenHelper(getContext(), "emp.db", null, 1);
db = helper.getWritableDatabase();
} @Override
protected void tearDown() throws Exception {
// TODO Auto-generated method stub
super.tearDown();
db.close();
} public void test() { } public void insertAction() {
db.execSQL("insert into Emp(name,salary) values('张无忌','12000')");
db.execSQL("insert into Emp(name,salary) values('赵敏','11000')");
db.execSQL("insert into Emp(name,salary) values('谢逊','16000')");
} public void deleteAction() {
db.execSQL("delete from Emp where name = '赵敏'");
} public void updateAction() {
db.execSQL("update Emp set salary = '18000' where name = ?",
new Object[] { "谢逊" });
} public void selectAction() {
Cursor c = db.rawQuery("select * from Emp", null);
while (c.moveToNext()) {
String id = c.getString(c.getColumnIndex("id"));
String name = c.getString(c.getColumnIndex("name"));
String salary = c.getString(c.getColumnIndex("salary"));
System.out.println(id + " , " + name + " , " + salary);
}
} public void insertAPI() {//添加
ContentValues values = new ContentValues();//相当于map
//添加的时候key一定要是Emp表中存在的字段
values.put("name", "洪七公");
values.put("salary", "5000");
//insert(String table, String nullColumnHack, ContentValues values)
db.insert("Emp", null, values);
} public void deleteAPI() {//删除
/*
* delete(String table, String whereClause, String[] whereArgs)
* whereClause
* the optional WHERE clause to apply when deleting. Passing null will delete all rows.
* whereArgs
* You may include ?s in the where clause, which will be replaced by the values from whereArgs. The values will be bound as Strings.
*/
int columns = db.delete("Emp", "name = ?", new String[] { "谢逊" });
System.out.println("行数:" + columns);
} public void updateAPI() {//修改
ContentValues values = new ContentValues();
values.put("salary", 500);
//update(String table, ContentValues values, String whereClause, String[] whereArgs)
int columns = db.update("Emp", values, "name = ?",new String[] { "张无忌" });
System.out.println("行数:" + columns);
} public void selectAPI() {//查询
//query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
Cursor c = db.query("Emp", new String[] { "name", "salary" }," id > ?", new String[] { "1" }, null, null, null);
System.out.println("ID大于1的人有:" + c.getCount() + "个人");
while (c.moveToNext()) {
String name = c.getString(c.getColumnIndex("name"));//获取name字段对应的下标
String salary = c.getString(c.getColumnIndex("salary"));
System.out.println(name + " , " + salary);
}
} public void transaction() {
try {
db.beginTransaction();// 开始事务
ContentValues values = new ContentValues();
values.put("salary", 300);
db.update("Emp", values, "name = ?", new String[] { "张无忌" });
values.clear();
int r = 4 / 0;// 模拟错误
values.put("salary", 5200);
db.update("Emp", values, "name = ?", new String[] { "洪七公" });
db.setTransactionSuccessful();
} catch (Exception e) {
System.out.println("事务回滚啦");
} finally {
db.endTransaction();//结束事务的同时会提交
}
}
}
Android SQLite API的使用(非原创)的更多相关文章
- Android测试框架2(非原创)
package com.example.sqlitedatabase.test; import android.content.ContentValues;import android.databas ...
- Android Activity 切换动画(非原创)
在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity ...
- Android -- 滑式抽屉SlidingDrawer(非原创)
SlidingDrawer(滑动式抽屉)隐藏屏外的内容,并允许用户拖拽一个handle以显示隐藏的内容.SlidingDrawer可以在垂直或者水平使用.它由两个子视图组成:一个是用户拖拽的handl ...
- Android测试框架1(非原创)
1.继承AndroidTestCase :public class JunitTest3 extends AndroidTestCase {} 2.在AndroidManifest.xml清单文件中添 ...
- Android 多线程断点下载(非原创)
1.服务器的CPU分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服务器资源,这里在客户端开启多个线程来从服务器下载资源 2.fragment_ma ...
- Android 系统API实现数据库的增删改查和SQLite3工具的使用
在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...
- 【NFC】Android NFC API Reference中英文
0 Near Field Communication Near Field Communication (NFC) is a set of short-range wireless technol ...
- Android SQLite总结(一) (转)
Android SQLite总结(一) 郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...
- Android开发-API指南-应用程序开发基础
Application Fundamentals 英文原文:http://developer.android.com/guide/components/fundamentals.html 采集(更新) ...
随机推荐
- (转)JSON 之FastJson解析
一.阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parse ...
- 怎么用C#获取Scenario step在specflow里
公司最近在用specflow 这种BDD的模式,但PM还是想把case再存进TestManager里面一份儿一遍后期集成TestManager 自动runcase用.所以我们需要获取每个scenari ...
- (一)Android开发之安卓系统的前世今生
1 什么是Android Android中文名称"安卓",英文含义为"机器人",Android是谷歌旗下的一款基于linux平台的开源操作系统.主要使用于移动设 ...
- hdu5362 Just A String(dp)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Just A String Time Limit: 2000/1000 MS (J ...
- xcode5.1上真机调试报告No architectures to compile for...的解决办法
由于手头上只有一台IPAD一代,近期升级到IOS5.0了(人家apple只让升级到此为止)而开发环境Xcode版本是5.1,默认情况下XCode编译出来的代码最低能跑在IOS6.0下, 于是GOOGL ...
- 一个Hadoop难以查找的错误
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [Master1 ...
- Python新手学习基础之函数-关键字参数
关键字参数 函数也可以使用 键 =值 的关键字参数形式被调用,这种调用形式的参数被称为关键字参数. 特别是在一个有许多参数的函数下,你想要指定参数中的部分参数,你可以使用关键字参数的方式来调用函数. ...
- WebVR
WebVR 主要面向Web前端工程师,需要一定Javascript及three.js基础:本文主要分享内容为基于three.js开发WebVR思路及碰到的问题:有兴趣的同学,欢迎跟帖讨论. 目录:一. ...
- Swift--存储属性-备
Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据. 存储属性可以存储数据,分为常量属性(用关键字let定义) ...
- 关于自动编译iOS工程,生成app及ipa文件的方法-备
文章地址. 1.所需语句(可直接在命令行中执行) xcodebuild -configuration Release 进入所在工程的根目录文件夹,执行上面的语句,即可开始自动使用rele ...