使用Android中API建议的方式实现SQLite数据库的增、删、改、查的操作

package com.examp.use_SQLite.dao;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.examp.use_SQLite.PersonSQLiteOpenHelper;
import com.examp.use_SQLite.domain.Person;

public class PersonDaoForAndroid {
	// 获取要操作的数据库对象
	private PersonSQLiteOpenHelper helper;

	/**
	 * 在构造方法中完成helper的初始化
	 *
	 * @param context
	 */
	public PersonDaoForAndroid(Context context) {
		helper = new PersonSQLiteOpenHelper(context);
	}

	/**
	 * 添加数据
	 *
	 * @param name姓名
	 * @param number电话
	 * @return 返回新插入一行的行ID,或者-1说明发生一个错误
	 */
	public long add(String name, String number) {
		// 获取数据库的连接对象
		SQLiteDatabase db = helper.getWritableDatabase();
		// 下面是API推荐的写法
		ContentValues values = new ContentValues();
		values.put("name", name);
		values.put("number", number);
		// 目标数据表
		// 返回新插入一行的行ID,或者-1说明发生一个错误
		long id = db.insert("person", null, values);
		// 及时的关闭数据库连接
		db.close();
		return id;
	}

	/**
	 * 根据用户姓名查询数据
	 *
	 * @param name
	 *            查询条件
	 * @return 查询结果
	 */
	public Person findByName(String name) {
		// 获取数据库连接
		SQLiteDatabase db = helper.getReadableDatabase();
		// 目标数据表名|指定返回的数据字段,如果设置null表示返回所有的数据字段|条件语句,不包括where关键字|条件的参数列表|分组的语句|having查询的语句|排序的语句,如果不设置表示使用默认
		Cursor cursor = db.query("person", null, "name=?",
				new String[] { name }, null, null, null);

		// 声明结果对象
		Person person = null;
		// 判断是否有结果返回
		if (cursor.moveToNext()) {
			// 取出数据集中的单行数据的个字段的数据
			// cursor.getColumnIndex("id");获取指定的字段的下标
			// cursor.getInt(index);或getString(index);是获取指定的下标的数据index为int类型;
			int id = cursor.getInt(cursor.getColumnIndex("id"));
			String named = cursor.getString(cursor.getColumnIndex("name"));
			String number = cursor.getString(cursor.getColumnIndex("number"));
			// 实例化查询结果数据对象
			person = new Person(id, named, number);
		}
		// 关闭数据库连接,释放资源
		db.close();
		// 返回数据结果对象
		return person;
	}

	/**
	 * 根据name更新一条数据
	 *
	 * @param name
	 *            跟新条件
	 * @param newnumber
	 *            新的数据
	 * @return rows受影响的行数
	 */
	public int update(String name, String newnumber) {
		SQLiteDatabase db = helper.getWritableDatabase();
		ContentValues values = new ContentValues();
		values.put("number", newnumber);
		// 目标数据表|要更新的数据|更新条件语句|更新条件参数列表
		int rows = db.update("person", values, "name=?", new String[] { name });
		db.close();
		return rows;
	}

	/**
	 * 根据指定的名字删除数据
	 *
	 * @param name
	 *            删除条件
	 * @return rows受影响的行数
	 */
	public int delete(String name) {
		SQLiteDatabase db = helper.getWritableDatabase();
		// 目标数据库表名称|条件语句|条件参数
		int rows = db.delete("person", "name=?", new String[] { name });
		db.close();
		return rows;
	}

	/**
	 * 查询所有的操作
	 *
	 * @return 查询的结果集
	 */
	public List<Person> findAll() {
		SQLiteDatabase db = helper.getReadableDatabase();
		Cursor cursor = db.query("person", null, null, null, null, null, null);
		// 声明结果集
		// 初始化结果集
		List<Person> persons = new ArrayList<Person>();
		// 判断是否有结果返回
		while (cursor.moveToNext()) {

			// 声明结果对象
			Person person = null;
			// 取出数据集中的单行数据的个字段的数据
			// cursor.getColumnIndex("id");获取指定的字段的下标
			// cursor.getInt(index);或getString(index);是获取指定的下标的数据index为int类型;
			int id = cursor.getInt(cursor.getColumnIndex("id"));
			String named = cursor.getString(cursor.getColumnIndex("name"));
			String number = cursor.getString(cursor.getColumnIndex("number"));
			// 实例化查询结果数据对象
			person = new Person(id, named, number);
			// 向结果集中添加数据
			persons.add(person);
		}
		// 关闭连接,释放资源
		db.close();
		// 放回结果集
		return persons;
	}
}

其它的代码参见另一篇博客Android实现SQLite数据库的增、删、改、查的操作

使用Android中API建议的方式实现SQLite数据库的增、删、改、查的操作,布布扣,bubuko.com

时间: 2024-10-10 06:36:22

使用Android中API建议的方式实现SQLite数据库的增、删、改、查的操作的相关文章

Android中API建议的方式实现SQLite数据库的增、删、改、查的操作

package com.examp.use_SQLite.dao; import java.util.ArrayList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import com.examp

Android 增,删,改,查 通讯录中的联系人

一.权限 操作通讯录必须在AndroidManifest.xml中先添加2个权限, <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission> <uses-permission android:name="android.permission.WRITE_CONTACTS"></uses-permission>

怎样从C#中打开数据库并进行 增 删 改 查 操作

首先 在C#中引用数据库的操作! (因为我们用的是SQLserver数据库,所以是SqlClient) using System.Data.SqlClient; 1:要实现对数据库的操作,我们必须先登录数据库 Console.WriteLine("请输入用户名:"); //提示客户输入用户名和密码 string name = Console.ReadLine(); Console.WriteLine("请输入密码:"); string pwd = Console.R

Android 中LocalBroadcastManager的使用方式

Android中BroadcastReceiver主要用途有 发送通知,更新UI或者数据,应用程序间相互通信,监听系统状态(比如开机,网络等) Android中BroadcasetReceiver的注册方式 manifest清单文件中的全局注册 按照生命周期,在Service或者Activity中使用代码注册 manifest的注册方式  <receiver android:name="com.sample.test.MyBroadcastReciever">       

(转)Android 中LocalBroadcastManager的使用方式

发表于2个月前(2014-11-03 22:05)   阅读(37) | 评论(0) 0人收藏此文章, 我要收藏 赞0 1月10日 #长沙# OSC 源创会第32期开始报名 摘要 android中广播的作用非常大,对程序的运行起着非常重要的作用 LocalBroadcastManager Android中BroadcastReceiver主要用途有 发送通知,更新UI或者数据,应用程序间相互通信,监听系统状态(比如开机,网络等) Android中BroadcasetReceiver的注册方式 m

Android笔记——Android中数据的存储方式(二)

我们在实际开发中,有的时候需要储存或者备份比较复杂的数据.这些数据的特点是,内容多.结构大,比如短信备份等.我们知道SharedPreferences和Files(文本文件)储存这种数据会非常的没有效率.如果学过JavaWeb的朋友,首先可能想到的是数据库.当然了数据库是一个方案,那么是否还有其他的解决方案呢?今天我们在讲下Android笔记——Android中数据的存储方式(一) 提到的除了SharedPreferences和Files(文本文件)以外的其他几种数据储存方式:xml文件.SQL

49.Android中线程同步异步方式小结

同步和异步的区别 首先以一个常见的开发场景来区别一下同步和异步的区别,比如我们要获取一张网络图片并完成显示.在这个场景中我们需要开启两个线程,一个是子线程—即下载图片的线程:另外是主 UI 线程—即图片下载完成后进行显示的线程.针对这个场景分别用两幅实现的流程图来区分同步和异步. 从图中可以看到,二者的区别在于:同步时当前主线程会阻塞,直到子线程通知主线程为止(先不考虑ANR):而异步的时候主线程可以继续干其它的事情,当子线程完成任务的时候通知一下主线程就可以了,类似于接口回调或消息队列的思想.

android中处理XML的方式

http://www.cnblogs.com/zhangdongzi/archive/2011/04/14/2016434.html 放在assets目录 http://www.cnblogs.com/luxiaofeng54/archive/2011/03/15/1984617.html assets及res目录 http://blog.csdn.net/hanjingjingpan/article/details/8812770 res下的xml目录 http://www.cnblogs.c

Android数据的四种存储方式之SQLite数据库

Test.java: /** * 本例解决的问题: * 核心问题:通过SQLiteOpenHelper类创建数据库对象 * 通过数据库对象对数据库的数据的操作 * 1.sql语句方式操作SQLite数据库 * 2.谷歌提供的api对SQLite数据库的操作 * 3.SQLite对事务的操作 */ import com.ghsy.createsqlitedb.db.MyOpenHelper; import android.content.ContentValues; import android.