`

android对sqlite数据库操作(创建 增 删 改 查)

 
阅读更多

操作sqlite数据库第一种方法execSql()  rawQuery () 第二种方法:insert() delete() update()  query()

/**
 * 通过继承SqliteOpenHelper来创建一个数据库
 * @author Administrator
 *
 */
public class DbOpenhelper extends SQLiteOpenHelper
{
	private static String DATABASENAME = "secn.db";
	private static int DATABASEVERSION = 2;
	

	/**
	 * (Context context, String name, CursorFactory factory,int version)
	 * @param context 上下文对象
	 * @param name 数据库名称 secb.db
	 * @param factory  游标工厂
	 * @param version 数据库版本
	 */
	public DbOpenhelper(Context context)
	{
		super(context, DATABASENAME, null, DATABASEVERSION);
	}
	
	/**数据库第一次被使用时创建数据库
	 * @param db 操作数据库的
	 */
	public void onCreate(SQLiteDatabase db)
	{
		//执行有更新行为的sql语句
		db.execSQL("CREATE Table person (personid integer primary key autoincrement, name varchar(20), amount integer,age integer)");
	}

	/**数据库版本发生改变时才会被调用,数据库在升级时才会被调用;
	 * @param db 操作数据库
	 * @param oldVersion 旧版本
	 * @param newVersion 新版本
	 */
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
	{
		db.execSQL("drop table if exists person");
		onCreate(db);
	}

}

 

 

 

/**
 * 对Person对象的sql操作(增删改查)
 * 
 * @author Administrator
 * 
 */
public class PersonService
{

	private DbOpenhelper dbOpenHelper;

	public PersonService(Context context)
	{
		dbOpenHelper = new DbOpenhelper(context);
	}

	/**
	 * 添加Person
	 * 
	 * @param person
	 */
	public void addPerson(Person person)
	{
		// 对读和写操作的方法
		// 如果当我们二次调用这个数据库方法,他们调用的是同一个数据库对象,在这里的方法创建的数据调用对象是用的同一个对象
		SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
		db.execSQL("insert into Person(name,amount) values(?,?)", new Object[]
		{ person.getName(), person.getAmount() });
	}

	/**
	 * 修改Person
	 * 
	 * @param person
	 */
	public void modifyPerson(Person person)
	{
		SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
		db.execSQL("update Person set name=? where personid=?", new Object[]
		{ person.getName(), person.getId() });
	}

	/**
	 * 删除Person
	 * 
	 * @param person
	 */
	public void deletePerson(Integer id)
	{
		SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
		db.execSQL("delete from Person where personid=?", new Object[]
		{ id.toString() });
	}

	/**
	 * 根据person的Id查询Person对象
	 * 
	 * @param id
	 *            Person的ID
	 * @return Person
	 */
	public Person findPerson(Integer id)
	{
		// 只对读的操作的方法
		SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
		// Cursor游标的位置,默认是0,所有在操作时一定要先cursor.moveToFirst()一下,定位到第一条记录
		// Cursor cursor =
		// db.rawQuery("select * from person Where personid=?",new
		// String[]{id.toString()});
		Cursor cursor = db.query("Person", new String[]
		{ "personid", "name", "amount" }, "personid=?", new String[]
		{ id.toString() }, null, null, null);
		if (cursor.moveToFirst())
		{
			int personId = cursor.getInt(cursor.getColumnIndex("personid"));
			String name = cursor.getString(cursor.getColumnIndex("name"));
			int amount = cursor.getInt(cursor.getColumnIndex("amount"));
			return new Person(personId, name, amount);
		}
		return null;
	}

	/**
	 * 返回Person对象的集合
	 * 
	 * @return List<Person>
	 */
	public List<Person> findPersonList(Integer start, Integer length)
	{
		List<Person> persons = new ArrayList<Person>();
		// 只对读的操作的方法
		SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
		Cursor cursor = db.rawQuery("select * from Person limit ?,?",
				new String[]
				{ start.toString(), length.toString() });
		cursor = db.query("Person", null, null, null, null, null, null, start
				+ "," + length);
		while (cursor.moveToNext())
		{
			int personId = cursor.getInt(cursor.getColumnIndex("personid"));
			String name = cursor.getString(cursor.getColumnIndex("name"));
			int amount = cursor.getInt(cursor.getColumnIndex("amount"));
			persons.add(new Person(personId, name, amount));
		}
		return persons;
	}

	/**
	 * 返回Person的记录总个数
	 * 
	 * @return
	 */
	public Long getCount()
	{
		SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
		Cursor cursor = db.rawQuery("select count(0) from Person ", null);
		// 这里必定有一条记录.所有不用判断,直接移到第一条.
		cursor.moveToFirst();
		// 这里只有一个字段时候 返回
		return cursor.getLong(0);
	}

	/**
	 * 操作一个事务
	 * 
	 * @return
	 */
	public String getTransaction()
	{
		SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
		String success = "";
		db.beginTransaction();
		try
		{
			db.execSQL("update person set amount = amount+10 where personId=?",
					new Object[]
					{ 1 });
			db.execSQL("update person set amount = amount-10 where personId=?",
					new Object[]
					{ 2 });
			success = "success";
		} catch (Exception e)
		{
			success = "input";
		} finally
		{
			// db.setTransactionSuccessful();//设置事务标志为成功,当结束事务时就会提交事务
			db.endTransaction();
		}
		return success;
	}
}

 

 

 

public class SqliteTest extends AndroidTestCase
{
	/**
	 * 创建数据库及新建表
	 */
	public void testCreateSqllite()
	{
		DbOpenhelper db = new DbOpenhelper(this.getContext());
		// 第一次调用该方法会调用数据库
		db.getWritableDatabase();
	}

	/**
	 * 添加Person
	 */
	public void testSavePerson()
	{
		PersonService db = new PersonService(this.getContext());
		Person person = new Person();
		person.setName("LiMing");
		person.setAmount(888);
		db.addPerson(person);

	}

	/**
	 * 更新Person
	 */
	public void testUpdatePerson()
	{
		PersonService db = new PersonService(this.getContext());
		Person person = new Person();
		person.setId(1);
		person.setName("LiMingRen");
		person.setAmount(101);
		db.modifyPerson(person);

	}
	
	/**
	 * 删除Person
	 */
	public void testDeletePerson()
	{
		PersonService db = new PersonService(this.getContext());
		db.deletePerson(1);

	}

	/**
	 * 查询一条Person记录
	 */
	public void testPerson()
	{
		PersonService db = new PersonService(this.getContext());
		Person person = db.findPerson(2);
		Log.i("SqliteTest", person.toString());

	}

	/**
	 * 查询Person集合对象
	 */
	public void testPersonList()
	{
		PersonService db = new PersonService(this.getContext());
		List<Person> persons = db.findPersonList(0, 5);
		for (Person parson : persons)
		{
			Log.i("SqliteTest", parson.toString());
		}

	}
	/**
	 * 测试一个事务
	 */
	public void testgetTransaction(){
		PersonService db = new PersonService(this.getContext());
		String str = db.getTransaction();
		Log.i("SqliteTest", str);
	}
}

 

 

public class Person
{
	private int id;
	private String name;
	private int amount;

	public Person()
	{
	}

	public Person(int id, String name, int amount)
	{
		super();
		this.id = id;
		this.name = name;
		this.amount = amount;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id)
	{
		this.id = id;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public int getAmount()
	{
		return amount;
	}

	public void setAmount(int amount)
	{
		this.amount = amount;
	}

	public String toString()
	{
		return "ID:"+id+" Name:" + name + " Amount:" + amount;
	}
}

 

分享到:
评论

相关推荐

    android基本SQLite数据库操作的增删改查demo

    在本示例"android基本SQLite数据库操作的增删改查demo"中,开发者创建了一个用于管理停车位查询的应用,其中涉及到了对SQLite数据库的基础操作:增加数据(Add)、查询数据(Query)、删除数据(Delete)以及修改...

    实验项目报告第7章.doc android studio SQLite数据库的创建、增删改查操作 SharedPreferen

    在实验过程中,学生通过创建一个简单的记事本应用,实现了使用 SQLite 进行数据的增删改查,以及利用 `SharedPreferences` 存储简单的配置信息。这样的实践有助于理解这些数据存储方式在实际开发中的应用,并加深了...

    android中sqlite数据库的创建以及增删改查

    资源名称:android中sqlite数据库的创建以及增删改查 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。

    Android使用SQLite数据库进行增删改查详细案例

    本案例将详细介绍如何在Android应用中使用SQLite进行增(Create)、删(Delete)、改(Update)和查(Read)操作。 1. **创建SQLite数据库** 在Android中,我们需要创建一个继承自`SQLiteOpenHelper`的类,这个类...

    android之sqlite实现增删改查

    "Android之SQLite实现增删改查"这个标题表明了本文将介绍如何在Android平台中使用SQLite数据库来实现增删改查操作。 描述解释 "这是学习及开发SQlite的一个很好的例子,含有其增删改查的所有功能附有完整的代码可以...

    android 对sqlite数据库的增删改查

    以上就是Android中对SQLite数据库进行增删改查的基本操作和注意事项。通过这些方法,开发者能够灵活地管理应用程序的数据存储。在实际项目中,还可以结合ContentProvider和LiveData等组件,构建更复杂的数据库交互...

    【Android】Sqlite数据库增删改查(修改版)

    在这个“【Android】Sqlite数据库增删改查(修改版)”项目中,我们将探讨如何在Android应用中使用SQLite进行基本的数据操作:增加、删除、修改和查询。 首先,我们要了解SQLite在Android中的集成。每个Android应用...

    Android数据库的SQLite增删改查

    本教程将通过一个名为"SqliteTestDemo"的示例项目,深入讲解如何在Android中进行SQLite数据库的增、删、改、查操作。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常会创建一个`SQLiteOpenHelper`的...

    Android连接sqlite数据库进行增删改查和事务操作

    本教程将详细介绍如何在Android中连接SQLite数据库,并执行基本的增删改查(CRUD)操作以及事务处理。 首先,我们需要创建一个SQLite数据库。在Android中,我们通常通过扩展`SQLiteOpenHelper`类来实现。这个类提供...

    Android储存---SQLite数据库的简单使用,实现增删改查

    本教程将深入讲解如何在Android中使用SQLite数据库进行基本的增删改查操作。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过继承`SQLiteOpenHelper`类来完成。`SQLiteOpenHelper`有两个关键的方法...

    android sqlite数据库 增加、删除、修改,查询系统功能实现

    本示例将详细介绍如何在Android应用中实现SQLite数据库的增删改查功能。 首先,我们需要在Android项目中创建一个SQLite数据库。这通常通过创建一个SQLiteOpenHelper的子类来完成。SQLiteOpenHelper负责创建和升级...

    Android开发中的SQLite数据库的增删改查工具类

    本篇文章将详细解析标题和描述中提到的两个关键文件:SQLiteManager.java和DBSOpenHelper.java,以及它们在实现SQLite数据库增删改查功能中的作用。 1. **SQLiteManager**: 这个类通常是对SQLite数据库操作的封装,...

    Android 操作数据库SQLite 增删改查demo

    本示例主要讲解如何在Android应用中进行SQLite数据库的增删改查操作,这对于任何需要持久化数据的应用都是必不可少的。 1. **创建SQLite数据库** 在Android中,我们通常通过`SQLiteOpenHelper`类来创建和管理...

    Android studio Android寄存系统,登录注册,增删改查,sqlite

    **增删改查操作** 在Android应用与SQLite交互时,CRUD(Create, Read, Update, Delete)操作是最基本的数据操作: 1. **创建(Create)**:使用`SQLiteOpenHelper`的`onCreate()`方法创建数据库和表。例如,通过`...

    Android SQLite数据库的增删改查多种实现

    以上就是Android中使用SQLite数据库进行增删改查的基本操作,实际应用中可能需要根据需求进行更复杂的查询和事务处理。了解这些基础,可以帮助开发者高效地管理和操作Android应用中的数据。在`AndroidSqliteTest`...

    Android简单数据库操作增删改查项目实现

    本项目“Android简单数据库操作增删改查项目实现”旨在介绍如何在Android应用中使用SQLite进行基本的数据操作,包括添加(Insert)、查询(Query)、更新(Update)和删除(Delete)。 1. 数据库初始化: 在...

    android数据库创建,增删改查操作

    以上就是Android中使用SQLite数据库进行创建、增删改查的基本步骤。在实际应用中,你可能还需要考虑线程安全、错误处理、数据缓存等问题。通过实践和理解这些概念,你可以有效地管理和操作Android应用程序中的数据。...

    Android 学习 结合界面对Sqlite数据库做增,删,改,查.操作

    本教程将深入探讨如何在Android界面中对SQLite数据库进行基本的增、删、改、查(CRUD)操作。 首先,我们需要创建一个SQLite数据库。在Android中,这通常通过继承SQLiteOpenHelper类来实现。SQLiteOpenHelper提供了...

    Android(sqlite) 数据库的增删改查操作

    在这个主题中,我们将深入探讨如何在Android环境中使用SQLite进行数据库的增删改查(CRUD)操作,并涉及到下拉列表框的制作。 首先,要与SQLite交互,我们需要创建一个SQLiteOpenHelper的子类。这个类负责数据库的...

Global site tag (gtag.js) - Google Analytics