sqlite增刪改查(二)

來源:互聯網
上載者:User

使用sqlite內建的crud方法操作資料庫,不贊成使用,因為效率沒直接操作sql語句高

所以只把例子貼出來

OtherPersonService

package com.tjp.service;

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.tjp.model.Person;

public class OtherPersonService {

private DBOpenHelp openHelp=null;
private Context context;


public OtherPersonService(Context context) {
this.context = context;
openHelp=new DBOpenHelp(context);
}

public void save(Person person){
SQLiteDatabase database= openHelp.getWritableDatabase();//對資料要更改,該方法以讀和寫的方式開啟資料庫,有緩衝功能
//database.execSQL("insert into person(name) values(?)",new Object[]{person.getName()});
ContentValues values=new ContentValues();
values.put("name", person.getName());
database.insert("person", null, values);//不管有沒有資料都想資料庫裡面儲存資料,
//database.insert("person", "name", null);//如果沒有給定第三個欄位或第三個參數個數為0個,那個就要指定一個空值欄位
}

public void update(Person person){
SQLiteDatabase database= openHelp.getWritableDatabase();
//database.execSQL("update person set name=? where personid=?",new Object[]{person.getName(),person.getPersonId()});
ContentValues values=new ContentValues();
values.put("name", person.getName());
database.update("person", values, "personid=?", new String[]{String.valueOf(person.getPersonId())});
}

public void delete(int personId){
SQLiteDatabase database= openHelp.getWritableDatabase();
//database.execSQL("delete from person where personid=?",new Object[]{personId});
database.delete("person", "personid=?", new String[]{String.valueOf(personId)});
}

public Person find(int personId){
SQLiteDatabase database= openHelp.getWritableDatabase();
Person person=null;
//Cursor cursor= database.rawQuery("select * from person where personid=?", new String[]{String.valueOf(personId).toString()});
Cursor cursor=database.query("person", new String[]{"personid","name"},
"personid=?", new String[]{String.valueOf(personId)}, null, null, null);
if(cursor.moveToFirst()){//如果移動成功了表示存在
int personIda =cursor.getInt(cursor.getColumnIndex("personid"));
String name=cursor.getString(cursor.getColumnIndex("name"));
person=new Person(personIda,name);
}
cursor.close();
return person;
}

public List<Person> getScrollDate(int offerset,int maxResult){
List<Person> persons=new ArrayList<Person>();
SQLiteDatabase database= openHelp.getWritableDatabase();
//String sql="select * from person limit ?,?";
//Cursor cursor= database.rawQuery(sql, new String[]{String.valueOf(offerset),String.valueOf(maxResult)});

Cursor cursor=database.query("person", null, null, null, null, null, null, offerset+","+maxResult);
while(cursor.moveToNext()){
int personIda =cursor.getInt(cursor.getColumnIndex("personid"));
String name=cursor.getString(cursor.getColumnIndex("name"));
Person person=new Person(personIda,name);
persons.add(person);
}
return persons;
}

public long getCount(){
SQLiteDatabase database= openHelp.getWritableDatabase();
//Cursor cursor= database.rawQuery("select count(*) from person", null);
Cursor cursor=database.query("person", new String[]{"count(*)"}, null, null, null, null, null);
cursor.moveToFirst();
int count=cursor.getInt(0);
cursor.close();
return count;
}
}

當資料庫更新的時候只要把版本號碼更新就會執行onUpgrade

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.