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 采集(更新) ...
随机推荐
- c# 交换两个变量
使用临时变量: 有人会问只使用两个变量交换,怎么办? 不实用临时变量: 第一种: a=a+b; b=a-b; a=a-b; 第二种: 异或:相同是0,不同是1 上面是整型的,那么字符串可以直接异或吗? ...
- ORACLE查询数据库的锁表情况
查询数据库的锁表情况语句如下: SELECT p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_na ...
- 网站压缩数据 GZIP
//1.被压缩数据 String str="Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好Hello 你好H ...
- poj1127 Jack Straws(线段相交+并查集)
转载请注明出处: http://www.cnblogs.com/fraud/ ——by fraud Jack Straws Time Limit: 1000MS Memory L ...
- 《Hadoop权威》学习笔记五:MapReduce应用程序
一.API的配置---Configuration类 API的配置:Hadoop提供了专门的API对资源进行配置,Configuration类的实例(在org.apache.hadoop.conf包)包 ...
- MySQL 使用索引扫描来做排序
MySQL有两种方式可以生成有序的结果:通过排序操作:或者按照索引顺序扫描:如果EXPLAIN 出来的结果的type列的值为“index”,则说明MySQL使用了索引扫描来做排序(不要和Extra列的 ...
- SpringMVC项目中中文字符乱码问题及解决办法总结(非专业最优解决办法) -- ajax传值乱码; request.getParameter()乱码;
情况一: ajax中传值时是乱码(后台可以获取到中文字符,但用@ResponseBody返回时前台为乱码) 情况二: Controller 中 request.getParameter()获取到的是乱 ...
- POJ3253 Haffman
POJ3253 分析: 简单的哈弗曼树的应用. AC代码: //Memory: 316K Time: 16MS #include <iostream> #include <cstri ...
- ADT-位图
利用位图数据结构实现排序,利用每一位的下标作为索引,每位的值作为属性值,可以表示存在或不存在,适合存储稠密的数据,排序遍历的范围会是索引的最大值 最后发现耗时比python中list自带的sort多, ...
- 初探 iOS8 中的 Size Class
初探 iOS8 中的 Size Class 分类: Ios2014-09-16 13:11 4323人阅读 评论(1) 收藏 举报 目录(?)[+] 初探 iOS8 中的 Size Class ...