Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、检查操作

Android在API推荐的方式来实现SQLite数据库的增长、删除、变化、检查操作

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

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表示返回全部的数据字段|条件语句,不包含wherekeyword|条件的參数列表|分组的语句|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数据库的增长、删除、变化、检查操作

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117731.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • sklearn库的使用_导入turtle库的方法

    sklearn库的使用_导入turtle库的方法Sklearn库是基于Python的第三方库,它包括机器学习开发的各个方面。机器学习的开发基本分为六个步骤,1)获取数据,2)数据处理,3)特征工程,4)机器学习的算法训练(设计模型),5)模型评估,6)应用。机器学习的算法一般分为两种:一种既有目标值又有特征值的算法称之为监督学习,另一种只有特征值的算法称之为无监督学习。而监督学习还可以继续细分为分类算法和回归算法。1)获取数据⑤Sklearn中获取数据集使用的包为Sklearn.datasets,之后可以接load_*和fetch_*从Skle

  • Android 9.0 WebView无法加载页面报错 net:ERR_CLEARTEXT_NOT_PERMITTED

    Android 9.0 WebView无法加载页面报错 net:ERR_CLEARTEXT_NOT_PERMITTED

  • 大数据应用实例[通俗易懂]

    大数据应用实例[通俗易懂]通过对全国各地不同时间段的购买华硕笔记本电脑的销售量进行大数据处理,将其通过汇总分析,即可制成图表的格式,使用户能对华硕笔记本销售量进行研究,可以查看出华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),购买的人数地域分布量,及购买的人群年龄分布,性别分布等等首先就是对华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),整体同比及移…

  • csdn的积分(积分计算规则)

    博客积分是衡量博客水平的重要标准,博客的排名也将按照积分排列。这是积分规则: 1、你每发布一篇原创或者翻译文章:可获得10分 2、你每发布一篇转载文章:可获得2分 3、博主你的文章每被评论一次:可获得1分 4、你每发表一次评论:可获得1分(自己给自己评论、博主回复别人对自己博文的评论不获得积分) 5、你每篇博文阅读次数每超过100次:可获得1分,阅读加分最高加到100分,即每篇

  • Vue项目实战:电商后台管理系统(Vue+VueRouter+Axios+Element)「建议收藏」

    Vue项目实战:电商后台管理系统(Vue+VueRouter+Axios+Element)「建议收藏」电商后台管理系统,使用vue、element-ui、axios、vue-router等,源码下载

  • YUI3的几点说明

    YUI3的几点说明YUI3的几点说明YUI3是一个重量级的前端框架库,它提供了单元测试(YUITest),生成文档(YUIDoc),自动化编译(YUIBuild)等工具,在代码组织方面有统一的微件(widget)框

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号