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 采集(更新) ...
随机推荐
- HDU4545+计算日期
/* 计算过了D天后的日期 之前D天的日期 */ #include<stdio.h> int judge_year( int year ){ if( (year%4==0&& ...
- ubuntu 14.04解决gedit中文乱码的问题
终端输入 gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8','GB18030','GB2 ...
- Android热补丁动态修复
1.前言 由于公司项目中使用到热修复技术,之前对这块技术知之甚少,所以有时间去学习了解了一下. 2.学习资源 2.1 热修复介绍 还是鸿洋老师的精彩讲解,中间引用了Andorid dex分包方案和QQ ...
- ADT-位图
利用位图数据结构实现排序,利用每一位的下标作为索引,每位的值作为属性值,可以表示存在或不存在,适合存储稠密的数据,排序遍历的范围会是索引的最大值 最后发现耗时比python中list自带的sort多, ...
- 获取android源码时repo的错误
今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/manifest.git出现问题:问题一:Tr ...
- forEach遍历对象数组案例
<script> var users = [ {name:'name1',age:21}, {name:'name2',age:22}, {name:'name3',age:23} ]; ...
- ServletContext对象(每个工程只有一个此对象)
一]重点方法: 1>存取对象 void setAttribute(String name, Object object);//将obj ...
- 计算机语言学习导论[C/C++]
作者:@幻の上帝 1 前置条件语文其实挺重要,这个没问题,但容易被忽视.当然,如果不是经常要折腾文档,要求不高:但起码要能说清楚话.数学重要,主要是广度,作为快速学习相关领域知识的基础.深度上面可深可 ...
- AIX和Linux中wtmp的不同处理方式
wtmp 记录用户登录和退出事件.它和utmp日志文件相似,但它随着登陆次数的增加,它会变的越来越大,有些系统的ftp访问也在这个文件里记录,同时它也记录正常的系统退出时间,可以用ac和last命令访 ...
- 【转】 ubuntu12.04更新源 官网和163等
原文网址:http://blog.csdn.net/zhangliang_571/article/details/8813999 分类: LINUX 摘要: 本文列出ubuntu 12.04 LTS更 ...