Android SQLite的运用

本文介绍了一款基于Android平台的简易记账应用开发过程,重点介绍了如何使用SQLite数据库进行数据存储,包括创建数据库表、插入初始数据及通过查询语句获取数据的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

又来帖代码啦,这段时间和几个人一起搞伙食,所以自己做了android的小应用来记账

看看每个人欠多少和支出多少。界面太丑,就不拿出来看了,今天来记录下SQLite的使用方法

首先,要用这东西必须要有一定的sql语句的基础,我想这么基本的东西大家都会的。下面来看看怎样用Android自带的轻量级数据库SQLite

具体步骤是:

1.定义一个助手类来初始化你想要建的表

2.从这个助手类中获得可读数据库对象或者可写数据库对象

3.用这个数据库对象进行相应的操作,可读的当然就是查询语句啦,可写的话就是增删改

听起来似乎有点简单,的确也不难。来帖个代码。

我的SqlHelper:

package com.freeborders.alfred;

import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class SqlHelper extends SQLiteOpenHelper {

	static final String sql = "create table " + Final.TBNAME + " (name varchar(10),pay varchar(5),owe varchar(5))";
	public SqlHelper(Context context, String name, CursorFactory factory,
			int version) {
		super(context, name, factory, version);
		// TODO Auto-generated constructor stub
	}

	//创建数据库的时候会做的事情放到这里,我这里就是简单的给这张Final.TBNAME初始化
	@Override
	public void onCreate(SQLiteDatabase db) {
		// TODO Auto-generated method stub
		//执行sql这个sql语句,它是创建一个新表
		db.execSQL(sql);
		//后面是给这个新表插入数据
		ContentValues values = new ContentValues();
		values.put("name", "Alfred");
		values.put("pay", "0");
		values.put("owe", "0");
		db.insert("accountbook", null, values);
		values.put("name", "Milo");
		values.put("pay", "0");
		values.put("owe", "0");
		db.insert("accountbook", null, values);
		values.put("name", "Winson");
		values.put("pay", "0");
		values.put("owe", "0");
		db.insert("accountbook", null, values);
		values.put("name", "Sai");
		values.put("pay", "0");
		values.put("owe", "0");
		db.insert("accountbook", null, values);
		values.put("name", "June");
		values.put("pay", "0");
		values.put("owe", "0");
		db.insert("accountbook", null, values);
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub

	}

}


其实这个Helper里面已经包括了插入数据了

再来看看再主函数如何访问数据库:

//连接数据库的函数,该函数遍历了数据库中名叫Final.TBNAME的表,并相应地赋值到对应的数组中
    //这里用到了游标
	private void connectDatabase() {
		// TODO Auto-generated method stub
		SqlHelper sqlHelper = new SqlHelper(MyAccountingActivity.this,Final.DBNAME , null, 1);
		//只读数据库对象private SQLiteDatabase dbRead;
		dbRead = sqlHelper.getReadableDatabase();
		//只写数据库对象private SQLiteDatabase dbWrite;
		dbWrite = sqlHelper.getWritableDatabase();
		int i = 0;
		Cursor cur = dbRead.query(Final.TBNAME, new String[]{"pay","owe"}, null	, null, null, null, null);
		while(cur!=null && cur.moveToNext() && i<Final.NUMBER){
			pays[i] = cur.getString(cur.getColumnIndex("pay"));
			sum+=Float.parseFloat(pays[i]);
			owes[i++] = cur.getString(cur.getColumnIndex("owe"));
			
		}
	}

注意dbRead.query是查询函数,其实就是select 语句

select pay,owe from Final.TBNAME;后面的null,null,null...其实就是select 语句后面的where 子句啊排序啊什么的。查查api都懂了

这里就不多说了

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值