android 数据库操作

android的开发中使用的数据库是SQLite ,它是一个轻量级的数据库 、非常小 、 移植性好、效率高、可靠。开发中使用数据库 的添加、删除、修改、查找操作,尤其在处理大量数据的时候使用数据库可以帮我们迅速定位当前须要处理的数据。同时android给我们提供了非常简单的操作方仿,我们只需要继承SQLiteOpenHelper类,实现其中的onCreate(SQLiteDatabase db)和 onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)方法,

如下面我书写的代码

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


public class DataBseOpenHelper extends SQLiteOpenHelper
{


private static final String DBNAME = "person"; 
private static final int version = 1;
public DataBseOpenHelper(Context context)
{
super(context, DBNAME, null, version);


}

/*
* 我们第一次打开应用,是调用,创建数据库
*/

@Override
public void onCreate(SQLiteDatabase db)
{
   db.execSQL("CREATE TABLE IF NOT EXISTS person (personId INTEGER primary key autoincrement,name varcahr(20), age INTEGER)");
 
}

/*
     * 软件更新,和数据库版本更换会调用此函数这对于我们更新软件非常方便
*/


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


}

在调用类中 我们用 

  1.   SQLiteDatabase  db = new  DataBseOpenHelper(Activity.this) .getWritableDatabase();利用SQLiteDatabase  给我们提供的方法操作即可。如我在调用的类里的代码
  2. 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.itcast.domain.Person;


    public class OtherService
    {


    private DataBseOpenHelper dataBseOpenHelper ;
    public OtherService(Context context){
    dataBseOpenHelper = new DataBseOpenHelper(context);
    }
    public void save(ContentValues values)
    {
    SQLiteDatabase db = dataBseOpenHelper.getWritableDatabase();
        db.insert("person", null, values);//添加记录,除了主键,其它的字段为null
        db.close();
    }


    public void update(ContentValues values ,Person person)
    {
    SQLiteDatabase db = dataBseOpenHelper.getWritableDatabase();
        db.update("person", values, "name= ?", new String []{person.getName() });
        db.close();
    }


    public Person find(Integer id)
    {
    SQLiteDatabase db = dataBseOpenHelper.getWritableDatabase();
        Cursor cursor =  db.query("person", null, "personId=?", new String[]{String.valueOf(id)}, null, null, null);
       
        if (cursor.moveToNext())
    {

    return new Person(cursor.getInt(0), cursor.getString(1), cursor.getInt(2));
    }
        
        db.close();
    return null;
    }


    public void delete(Integer... ids)
    {
            if (ids.length > 0)
    {
            StringBuffer sb = new StringBuffer() ;
            String [ ]stIds = new String[ids.length];
            for(int i = 0;i<ids.length;i++){
                sb.append('?').append(',');
                stIds[i]=String.valueOf(ids[i]);
                }
            sb.deleteCharAt(sb.length() - 1);
            SQLiteDatabase db = dataBseOpenHelper.getWritableDatabase();
            db.delete("person", "personId in("+sb+")", stIds);
            db.close();
    }
    }


    public List<Person> getScollData(int start, int end)
    {
    List<Person> persons = new ArrayList<Person>();
    SQLiteDatabase db = dataBseOpenHelper.getWritableDatabase();
    Cursor cursor = db.query("person", null, null, null, null, null, null, start+","+end);

    while (cursor.moveToNext())
    {
      persons.add(new Person(cursor.getInt(0),cursor.getString(1),cursor.getInt(2)));
    }
    cursor.close();
    db.close();
    return persons;
    }


    public long getCount()
    {


    SQLiteDatabase db = dataBseOpenHelper.getWritableDatabase();
    Cursor cursor = db.query("person", new String []{"count(*)"}, null, null, null, null, null);
    if (cursor.moveToNext())
    {
    return cursor.getLong(0);
    }
    return 0;
    }


    }

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值