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数据库的增、删、改、查的操作
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 进行数据库,需要使用 SQLite 数据库SQLite 是一款轻量级的关系型数据库,在 Android 内置了 SQLite 数据库引擎,可以通过 Android SDK 提供的 API 进行数据库操作。 以下是一个简单的示例代码,演示如何在 Android 进行数据库: 1. 创建数据库 首先需要创建一个 DBHelper 类,用于创建数据库以及数据表。以下是一个示例代码: ```java public class DBHelper extends SQLiteOpenHelper { private static final String DB_NAME = "my_db"; private static final int DB_VERSION = 1; public DBHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { String sql = "CREATE TABLE IF NOT EXISTS student (_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER)"; db.execSQL(sql); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = "DROP TABLE IF EXISTS student"; db.execSQL(sql); onCreate(db); } } ``` 2. 插入数据 使用 ContentValues 类来组装数据,然后调用 insert() 方法将数据插入到数据库。以下是一个示例代码: ```java ContentValues values = new ContentValues(); values.put("name", "张三"); values.put("age", 20); db.insert("student", null, values); ``` 3. 数据 使用 query() 方法来数据库数据。以下是一个示例代码: ```java Cursor cursor = db.query("student", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("_id")); String name = cursor.getString(cursor.getColumnIndex("name")); int age = cursor.getInt(cursor.getColumnIndex("age")); Log.i("TAG", "id: " + id + ", name: " + name + ", age: " + age); } cursor.close(); ``` 4. 更新数据 使用 update() 方法来更新数据库数据。以下是一个示例代码: ```java ContentValues values = new ContentValues(); values.put("age", 21); db.update("student", values, "name = ?", new String[]{"张三"}); ``` 5. 数据 使用 delete() 方法来数据库数据。以下是一个示例代码: ```java db.delete("student", "name = ?", new String[]{"张三"}); ``` 以上就是在 Android 进行数据库的简单示例代码。需要注意的是,数据库操作需要在子线程进行,不能在主线程进行,否则会影响应用的性能和响应速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值