Android--SQLite(增,删,改,查)操作

需要5个类:
1.实体类:Person.java
2.抽象类:SQLOperate.java(封装了对数据库的操作)
3.助手类:DBOpenHelper.java(继承SQLiteOpenHelper)
4.实现类:SQLOperateImpl.java(实现抽象类SQLOperate.java)
5.测试类:Test.java(继承AndroidTestCase)

1.Person.java

[html] view plaincopy
package com.mrzhu.sqltite;

public class Person {

private int _id;  
private String name;  

public int getId() {  
    return _id;  
}  

public void setId(int _id) {  
    this._id = _id;  
}  

public String getName() {  
    return name;  
}  

public void setName(String name) {  
    this.name = name;  
}  

@Override  
public String toString() {  
    return "Person [id=" + _id + ", name=" + name + "]";  
}  

public Person() {  
    super();  
}  

public Person(int _id, String name) {  
    super();  
    this._id = _id;  
    this.name = name;  
}  

}

2.SQLOperate.java

[html] view plaincopy
package com.mrzhu.sqltite;

import java.util.List;

/**
* 增删改查
* @author ZLQ
*
*/
public interface SQLOperate {
public void add(Person p);
public void delete(int id);
public void updata(Person p);
public List find();
public Person findById(int id);
}

3.DBOpenHelper.java

[html] view plaincopy
package com.mrzhu.sqltite;

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

/**
* 助手类
* @author ZLQ
*
*/
public class DBOpneHelper extends SQLiteOpenHelper {

private static final int VERSION = 1;//版本  
private static final String DB_NAME = "people.db";//数据库名  
public static final String STUDENT_TABLE = "student";//表名  
public static final String _ID = "_id";//表中的列名  
public static final String NAME = "name";//表中的列名  
//创建数据库语句,STUDENT_TABLE,_ID ,NAME的前后都要加空格  
private static final String CREATE_TABLE = "create table " + STUDENT_TABLE + " ( " + _ID + " Integer primary key autoincrement," + NAME + " text)";  

public DBOpneHelper(Context context) {  
    super(context, DB_NAME, null, VERSION);  
}  

//数据库第一次被创建时调用   
@Override  
public void onCreate(SQLiteDatabase db) {  
    db.execSQL(CREATE_TABLE);  
}  

//版本升级时被调用   
@Override  
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {  

}  

}

4.SQLOperateImpl.java

[html] view plaincopy
package com.mrzhu.sqltite;

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;

public class SQLOperateImpl implements SQLOperate{

private DBOpneHelper dbOpenHelper;  

public SQLOperateImpl(Context context) {  
    dbOpenHelper = new DBOpneHelper(context);  
}  

/**  
 * 增,用insert向数据库中插入数据  
 */  
public void add(Person p) {  
    SQLiteDatabase db = dbOpenHelper.getWritableDatabase();  
    ContentValues values = new ContentValues();  
    values.put(DBOpneHelper._ID, p.getId());  
    values.put(DBOpneHelper.NAME, p.getName());  
    db.insert(DBOpneHelper.STUDENT_TABLE, null, values);  
}  

/**  
 * 删,通过id删除数据  
 */  
public void delete(int id) {  
    SQLiteDatabase db = dbOpenHelper.getWritableDatabase();  
    db.delete(DBOpneHelper.STUDENT_TABLE, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)});  
}  

/**  
 * 改,修改指定id的数据  
 */  
public void updata(Person p) {  
    SQLiteDatabase db = dbOpenHelper.getWritableDatabase();  
    ContentValues values = new ContentValues();  
    values.put(DBOpneHelper._ID, p.getId());  
    values.put(DBOpneHelper.NAME, p.getName());  
    db.update(DBOpneHelper.STUDENT_TABLE, values, DBOpneHelper._ID + "=?", new String[]{String.valueOf(p.getId())});  
}  

/**  
 * 查,查询表中所有的数据  
 */  
public List<Person> find() {  
    List<Person> persons = null;  
    SQLiteDatabase db = dbOpenHelper.getReadableDatabase();  
    Cursor cursor = db.query(DBOpneHelper.STUDENT_TABLE, null, null, null, null, null, null);  
    if(cursor != null){  
        persons = new ArrayList<Person>();  
        while(cursor.moveToNext()){  
            Person person = new Person();  
            int _id = cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID));  
            String name = cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME));  
            person.setId(_id);  
            person.setName(name);  
            persons.add(person);  
        }  
    }  
    return persons;  
}  

/**  
 * 查询指定id的数据  
 */  
public Person findById(int id) {  
    SQLiteDatabase db = dbOpenHelper.getReadableDatabase();  
    Cursor cursor = db.query(DBOpneHelper.STUDENT_TABLE, null, DBOpneHelper._ID + "=?", new String[]{String.valueOf(id)}, null, null, null);  
    Person person = null;  
    if(cursor != null && cursor.moveToFirst()){  
        person = new Person();  
        int _id = cursor.getInt(cursor.getColumnIndex(DBOpneHelper._ID));  
        String name = cursor.getString(cursor.getColumnIndex(DBOpneHelper.NAME));  
        person.setId(_id);  
        person.setName(name);  
    }  
    return person;  
}  

}

5.Test.java

在AndroidManifest.xml中的外添加
(targetPackage是当前工程的包名)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值