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


相关推荐

  • Apache 中RewriteRule 规则参数[通俗易懂]

    Apache 中RewriteRule 规则参数[通俗易懂][size=medium]Apache中RewriteRule规则参数Apache模块mod_rewrite提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求。它支持每个完整规则可以拥有不限数量的子规则以及附加条件规则的灵活而且强大的URL操作机制。此URL操作可以依赖于各种测试,比如服务器变量、环境变量、HTTP头、时间标记,甚至各种格式的用于匹配URL组成部分的查找数…

    2022年5月15日
  • oracle11.2 异常关闭机器引起,ora-01172,ora-01152错误处理

    oracle11.2 异常关闭机器引起,ora-01172,ora-01152错误处理

    2021年8月28日
  • 狂神说Java全栈学习路线

    狂神说Java全栈学习路线很多同学学习Java苦于没有自己的完整学习步骤,在这里,秦老师给大家奉上一份完整的学习计划~干货满满,关注收藏转发呀!不胜感激!一、Java基础二、JavaWeb三、SSM框架四、Lin…

    2022年5月16日
  • python标识符以什么开头_哪个不是python合法标识符

    python标识符以什么开头_哪个不是python合法标识符python标识符命名规范介绍发布时间:2020-05-2311:03:48来源:亿速云阅读:146作者:Leahpython的标识符是什么?怎样命名?这些问题可能是我们日常工作会见到的。通过这些问题,希望你能收获更多。下面是揭开这些问题的详细内容。简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量、函数、类、模块以及其他对象的名称。Python中标识…

    2022年9月9日
  • ArrayList扩容机制JDK1.8

    ArrayList扩容机制JDK1.8本题的所有的讲解都是基于JDK8这道题考察了ArrayList的构造器和对扩容机制的了解,本篇博客基于此出发讲解ArrayList的扩容机制想要做出这道题必须了解ArrayList的构造函数,ArrayList的构造函数总共有三个:ArrayList()构造一个空的数组。JDK7中构造一个初始容量为10的空列表但是JDK8中只是构造一个空的数组ArrayList(Collection<?extendsE>c)构造一个包含指定collection的元素的数组,这些元素是按.

    2022年6月9日
  • Android中Calendar类的用法总结[通俗易懂]

    Android中Calendar类的用法总结[通俗易懂]Calendar是Android开发中需要获取时间时必不可少的一个工具类,通过这个类可以获得的时间信息还是很丰富的,下面做一个总结,以后使用的时候就不用总是去翻书或者查资料了。

    2022年9月23日

发表回复

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

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