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数据库的增长、删除、变化、检查操作

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

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

(0)
上一篇 2022年1月1日 上午11:00
下一篇 2022年1月1日 上午11:00


相关推荐

  • Windows 11硬盘分区格式GPT和MBR怎么转换_Windows 11无损转换磁盘分区表

    Windows 11硬盘分区格式GPT和MBR怎么转换_Windows 11无损转换磁盘分区表

    2026年3月16日
    2
  • java android实例_Android开发精典案例60个

    java android实例_Android开发精典案例60个【实例简介】Android开发精典案例60个【实例截图】【核心代码】2-1(Activity生命周期)3-1(Button与点击监听器)3-10-1(列表之ArrayAdapter适配)3-10-2(列表之SimpleAdapter适配)3-11(Dialog对话框)3-12-5(Activity跳转与操作)3-12-6(横竖屏切换处理)3-3(ImageButton图片按钮)3-4(EditTe…

    2022年6月17日
    29
  • UIImagePickerController本地化控件文字

    UIImagePickerController本地化控件文字

    2022年1月21日
    54
  • 求和符号的运用_求和符号的性质

    求和符号的运用_求和符号的性质文章向导从单重求和谈起(定义与基本性质)多重求和(二重情况)求和的实际应用(等比级数)引言:  求和符号经常活跃于数学或工程实际问题中,特别是处于多重求和情况时,连用的求和符号存在运算的优先顺序,有时我们可以直接互换不同求和符号之间的位置,而有时不同的位置则代表不同的求和意义。因此,关于求和符号∑的问题还是很有必要进行细致讨论一番。一、从单重求和谈起  我们通过一个例子来回顾下求…

    2022年10月12日
    4
  • 最大矩形面积leetcode_leetcode免费吗

    最大矩形面积leetcode_leetcode免费吗原题链接给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。以上是柱状图的示例,其中每个柱子的宽度为 1,给定的高度为 [2,1,5,6,2,3]。图中阴影部分为所能勾勒出的最大矩形面积,其面积为 10 个单位。示例:输入: [2,1,5,6,2,3]输出: 10题解对于每一个长方体,找出左边比他小的第一个长方体和右边比他小的第一个长方体,然后遍历求结即可class Solution {public

    2022年8月8日
    14
  • PyCharm 2022.01.13 永久激活码(JetBrains全家桶)

    (PyCharm 2022.01.13 永久激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年4月1日
    225

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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