Android中API建议的方式实现SQLite数据库的增、删、改、查的操作

来源:互联网 发布:南宁的淘宝实体店 编辑:程序博客网 时间:2024/06/04 22:48
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 0