Android数据库的增删改查和ListView以及页面跳转的实现

本文介绍了如何在Android应用中通过PersonDao类实现SQLite数据库的增删改查操作,详细讲解了getWritableDatabase()和getReadableDatabase()的区别,并展示了如何将数据保存到数据库,以及利用ListView展示数据和页面跳转的实现。
摘要由CSDN通过智能技术生成
不多说什么,直接看代码:先创建一个person实体对象。
import java.io.Serializable;

public class Person implements Serializable{
	private static final long serialVersionUID=1L;
	private Integer id;
	private String name;
	private String phone;
	private Integer amount;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}
	public Integer getAmount() {
		return amount;
	}
	public void setAmount(Integer amount) {
		this.amount = amount;
	}
	public Person(String name, String phone, Integer amount) {
		super();
		this.name = name;
		this.phone = phone;
		this.amount = amount;
	} 
	public Person(int id,String name, String phone, Integer amount) {
		super();
		this.id=id;
		this.name = name;
		this.phone = phone;
		this.amount = amount;
	} 

	

<h2>}
<span style="color:#ff0000;">创建DBOpenHelper类通过继承SQLiteOpenHelper类来实现数据库的创建和更新。重写SQLiteOpenHelper 的onCreate、onUpgrade方法</span></h2>
<span style="font-family: Arial, Helvetica, sans-serif;"></span>

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DBOpenHelper extends SQLiteOpenHelper {

	private static final String tag="DBSQLiteHelper";
	private static final String name="bobge.db";
	private static final int version=1;
	public DBOpenHelper(Context context) {
		super(context, name, null, version);
		Log.v(tag, "构造器");
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		db.execSQL("create table person(id integer primary key autoincrement,name varchar(20),phone varchar(20),amount integer)");  
        Log.v(tag, "数据库创建执行一次");  
	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		db.execSQL("DROP TABLE IF EXISTS person");
		onCreate(db);

	}

}

创建PersonDao类实现对person实体数据的增删改查操作。

getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库的磁盘空间满了,数据库就只能读而不能写,倘若使用getWritableDatabase()打开数据库就会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。
注意:getWritableDatabase(),getReadableDatabase的区别是当数据库写满时,调用前者会报错,调用后者不会,所以如果不是更新数据库的话,最好调用后者来获得数据库连接。

<span style="font-family: Arial, Helvetica, sans-serif;">import java.util.ArrayList;</span>
import java.util.List;

import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import dbSQLiteOPenHelper.db.domain.Person;
import dbSQLiteOPenHelper.service.DBOpenHelper;

public class PersonDao {
	private DBOpenHelper dbOpenHelper;
	
	public PersonDao(Context context) {
		this.dbOpenHelper = new DBOpenHelper(context);
	}
	public void save(Person person
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值