加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite数据库的添删改查

发布时间:2020-12-12 20:41:00 所属栏目:百科 来源:网络整理
导读:还是那句话,经常重复的代码要总结起来 1.首先建一个person实例: Person.java package morgen.domain;public class Person { private Integer id; private String name; private String phone; public Integer getId() { return id; } public void setId(Int

还是那句话,经常重复的代码要总结起来

1.首先建一个person实例:

Person.java

package morgen.domain;

public class Person {
    private Integer id;
    private String name;
    private String phone;
    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 Person(Integer id,String name,String phone) {
        this.id = id;
        this.name = name;
        this.phone = phone;
    }
    public Person(String name,String phone) {
        this.name = name;
        this.phone = phone;
    }
    @Override
    public String toString() {
        return "Person [id=" + id + ",name=" + name + ",phone=" + phone + "]";
    }
    

}

2.接着创建数据库文件和表

DBOpenHelper.java

package morgen.db;

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

public class DBOpenHelper extends SQLiteOpenHelper {

    public DBOpenHelper(Context context) {
        super(context,"morgen.db",null,2);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("CREATE TABLE person(id integer primary key autoincrement,name varchar(20))");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) {
        db.execSQL("ALTER TABLE person ADD phone VARCHAR(12) NULL");
    }

}


3.对数据库进行操作

PersonService.java

package morgen.service;

import java.util.ArrayList;
import java.util.List;

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

import morgen.db.DBOpenHelper;
import morgen.domain.Person;

public class PersonService {
    private DBOpenHelper dbOpenHelper;
    
    public PersonService(Context context){
        dbOpenHelper = new DBOpenHelper(context);
    }
    /**
     * 保存数据
     * @param person
     */
    public void save(Person person){
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.execSQL("insert into person(name,phone) values(?,?)",new Object[]{person.getName(),person.getPhone()});
        //db.close();
    }
    /**
     * 删除记录
     * @param id 记录ID
     */
    public void delete(Integer id){
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.execSQL("delete from person where id=?",new Object[]{id});
    }
    /**
     * 更新记录
     * @param person
     */
    public void update(Person person){
        SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
        db.execSQL("update person set name=?,phone=? where id=?",person.getPhone(),person.getId()});
    }
    /**
     * 获取记录
     * @param id 记录id
     * @return
     */
    public Person find(Integer id){
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from person where id=?",new String[]{id.toString()});
        if(cursor.moveToFirst()){
            String phone = cursor.getString(cursor.getColumnIndex("phone"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            cursor.close();
            return new Person(id,name,phone);
        }
        return null;
    }
    /**
     * 分页获取记录
     * @param offset 跳过前面多少条记录
     * @param maxResult 每页获取的记录数
     * @return
     */
    public List<Person> getScrollData(int offset,int maxResult){
        List<Person> persons = new ArrayList<Person>();
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select * from person order by id asc limit ?,?",new String[]{String.valueOf(offset),String.valueOf(maxResult)});
        
        while(cursor.moveToNext()){
            int id = cursor.getInt(cursor.getColumnIndex("id"));
            String phone = cursor.getString(cursor.getColumnIndex("phone"));
            String name = cursor.getString(cursor.getColumnIndex("name"));
            persons.add(new Person(id,phone));
        }
        cursor.close();
        return persons;
    }
    /**
     * 获取记录总数
     * @return
     */
    public long getCount(){
        SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
        Cursor cursor = db.rawQuery("select count(*) from person",null);
        cursor.moveToFirst();
        long count = cursor.getLong(0);
        cursor.close();
        return count;
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读