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 采集(更新) ...
随机推荐
- Centos6.5使用yum安装MariaDB
系统版本:Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x8 ...
- jQuery自学笔记(三):jQuery动画效果
jQuery隐藏和显示: 使用 hide( ) 和 show( ) 方法来隐藏和显示 HTML 元素: 语法: $(selector).hide(speed,callback); $(selector ...
- C#编码标准--编码习惯
C#编码标准--编码习惯 0. 书写程序时的大小写规则: a) 类:PascalCase表示法.如 MyClass b) 枚举值:PascalCase表示法.如 Colors.Red c) 枚举类型 ...
- win32 console application 如何修改图标?
win32 console application ,不要看这名字高端大气上档次,让你摸不着头脑,其实他就是我们最先学习c语言那种黑色窗口的东西......话说他怎么修改图标呢?第一种方法是:右键-〉 ...
- C语言基础学习基本数据类型-int类型与int变量
int类型与int变量 针对不同的用途,C语言提供了多种整数类型.各种整数类型的区别在于所提供数值的范围,以及数值是否可以取负值. 在之前的实例中你已经看到过,int关键字用于声明整型变量. int类 ...
- 解决android studio 创建新项目后假死
概况:升级sdk编译api后,创建新的android项目后,在构建过程中假死:原有创建的项目 均运行正常:但是新建的项目只要build,电脑除了鼠标之外的,什么都动不了. 通过一系列的折腾,并重启了N ...
- Android调用系统的Activity、ContentProvider、Service、Broadcast Receiver
Intent-------->Action |_____________Activity------------------------------->Intent Action |___ ...
- Android 之 Window、WindowManager 与窗口管理
其实在android中真正展示给用户的是window和view,activity在android中所其的作用主要是处理一些逻辑问题,比如生命周期的管理.建立窗口等.在android中,窗口的管理还是比 ...
- logstash 判断接口响应时间发送zabbix告警
input { file { type => "zj_api_access" path => ["/data01/applog_backup/zjzc_log ...
- 了解 Windows Azure 存储的可伸缩性、可用性、持久性和计费
借助 Windows Azure存储,应用程序开发者及其应用程序和用户可以在云中使用可用性更高.持久性更长.可伸缩性更强的海量存储.开发者可以构建能随时随地高效访问数据的服务,在所需的时间段内存储任意 ...