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的使用(非原创)的更多相关文章

  1. Android测试框架2(非原创)

    package com.example.sqlitedatabase.test; import android.content.ContentValues;import android.databas ...

  2. Android Activity 切换动画(非原创)

    在Android开发过程中,经常会碰到Activity之间的切换效果的问题,下面介绍一下如何实现左右滑动的切换效果,首先了解一下Activity切换的实现,从Android2.0开始在Activity ...

  3. Android -- 滑式抽屉SlidingDrawer(非原创)

    SlidingDrawer(滑动式抽屉)隐藏屏外的内容,并允许用户拖拽一个handle以显示隐藏的内容.SlidingDrawer可以在垂直或者水平使用.它由两个子视图组成:一个是用户拖拽的handl ...

  4. Android测试框架1(非原创)

    1.继承AndroidTestCase :public class JunitTest3 extends AndroidTestCase {} 2.在AndroidManifest.xml清单文件中添 ...

  5. Android 多线程断点下载(非原创)

    1.服务器的CPU分配给每条线程的时间片相同,服务器带宽平均分配给每条线程,所以客户端开启的线程越多,就能抢占到更多的服务器资源,这里在客户端开启多个线程来从服务器下载资源 2.fragment_ma ...

  6. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  7. 【NFC】Android NFC API Reference中英文

    0 Near Field Communication Near Field Communication (NFC) is a set of   short-range wireless technol ...

  8. Android SQLite总结(一) (转)

    Android SQLite总结(一)  郑海波 2012-08-21 转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/7891887 前言 ...

  9. Android开发-API指南-应用程序开发基础

    Application Fundamentals 英文原文:http://developer.android.com/guide/components/fundamentals.html 采集(更新) ...

随机推荐

  1. iOS分享 - AFNetworking之多图片/文件上传

    在分享经验之前,先说点题外话,之前的一个项目涉及到了多图片的上传,本来以为是一个很简单的事情,却着实困扰了我好久,究其原因,一是我不够细心,二是与后台人员的交流不够充分.在此,我想将我的老师常说的一句 ...

  2. poj3685 二分套二分

    F - 二分二分 Crawling in process... Crawling failed Time Limit:6000MS     Memory Limit:65536KB     64bit ...

  3. uva 10125 - Sumsets

    题意: 输入n,然后输入n个数字,,要在这n个数字中找出a,b,c,d..满足a,b,c,d是不同元素,并且a + b + c = d...求出最大的d 直接暴力时间复杂度为O(n^4)..会超时.. ...

  4. jquery实现简单鼠标经过图片预览效果

    html结构:<div class="prebtn"><img src=""/></div> css代码:#preview{ ...

  5. iOS开发之多媒体API(1)

    iOS开发之多媒体API(1)       播放视频 视频文件介绍 视频格式可以分为适合本地播放的本地影像视频和适合在网络中播放的网络流媒体影像视频两大类.尽管后者在播放的稳定性和播放画面质量上可能没 ...

  6. 在C语言控制台程序中播放MP3音乐

    游戏没有声音多单调. 这里做一个简单的范例,用 mciSendString 函数播放 MP3 格式的音乐,先看看代码吧: // 编译该范例前,请把 background.mp3 放在项目文件夹中 // ...

  7. NGINX和PHP之间的环境变量传递

    昨天遇到的,想将IP访问转换成域名访问.则NGINX需要将相关的变量转换后传递给PHP. 网上有一系统的方法: 前面讲过该不该把信息写在服务器配置文件里?.通过php扩展hidef来define常量, ...

  8. JavaScript对象基础知识

    1.对象所包含的元素一组包含数据的属性.如人的名字.书的价格和手机型号等.允许对属性中所包含的数据进行操作的方法. 2.引用对象的途径一个对象真正地被使用,可以采用以下几种方式.引用Javascrip ...

  9. JavsScript的基本特点

    1.简单性Javascript是一种脚本语言,它采用小程序段的方式实现编程它同样也是一种解释性语言.2.动态性Javascript是动态的,它可以直接对用户或者客户输入做出相应,无须经过Web服务程序 ...

  10. 动态Linq(结合反射)

    这篇文章决定对最近一个单机版Web程序用到的东西总结一下. 一.反射Linq之OrderBy 动态Linq结合反射对某字段排序: namespace 动态Linq { class Program { ...