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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java五种最常见的异常

    java五种最常见的异常

    2021年7月15日
    57
  • 明翰英国硕士常见词汇与固定搭配V1.2(持续更新)

    明翰英国硕士常见词汇与固定搭配V1.2(持续更新)下面的所有词汇与例句都是在英国留学期间,用到的、听到的、见到的,都是学校、教职人员、同学使用过的,对于高频词汇一定要掌握听说读写。

    2022年10月2日
    2
  • ray tracing in one weekend_rocket用法

    ray tracing in one weekend_rocket用法RayTracing文章目录RayTracing光线追踪Whitted-StyleRayTracing求交点加速求交点BoundingVolumes包围盒BVHBasicradiometry(辐射度量学)RadiantfluxintensityIrradianceRadianceBRDF双向反射分布函数概率论回顾蒙特卡洛路径追踪蒙特卡洛积分路径追踪光线追踪1.光沿直线传播2.光线不会发生碰撞3.光路可逆性Whitted-StyleRayTracing递归算法,包括了光

    2025年7月16日
    4
  • python可变类型有哪些_python可变数据类型有哪些

    python可变类型有哪些_python可变数据类型有哪些将python3的基本数据类型有六种:Number(int,float,bool,complex),String,List,Tuple,Dictionary,Set可变数据类型:list,dic,set不可变数据类型:Number,String,Tuple什么是可变数据类型和不可变数据类型?1、Python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当…

    2022年5月20日
    76
  • 8psk带宽计算_采用8PSK系统传输4800bps数据。 (1)信道带宽的最小理论值是多少? mpsk 信号可以采用差…

    8psk带宽计算_采用8PSK系统传输4800bps数据。 (1)信道带宽的最小理论值是多少? mpsk 信号可以采用差…码元速率为boud=4800/log8=1600Boud/s最小带宽为boud/2=1600/2=800HZ带宽不变,信息加倍,可以采用每个码元所含信息量为4bit的调制方式,如采用16QAM调制。带宽不变的情况下,信息速率增大,误码率相同的情况下,要增加信号的发送功率。给分吧,谢谢如同模拟调制,数字调制也可分为频率调制、相位调制和幅度调制,性能各有千秋。由于频率、相位调制对噪声抑制更好,因此成为…

    2022年10月10日
    3
  • Java SoftReference

    Java SoftReferenceSoftReference的语义就是当内存不够用的时候,GC会回收SoftReference所引用的对象。所以,在memorysensitive的程序中将某些大型数据设置成SoftReference再合适不过了。创建一个SoftReference:[code="java"]Objectobj=newObject();SoftReferencesoftRef=…

    2025年10月8日
    2

发表回复

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

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