Android Sqlite数据库增删改查操作

来源:互联网 发布:泳装的销售数据 编辑:程序博客网 时间:2024/04/29 13:06

Android中用的是Sqlite数据库,Sqlite数据库数据相对简单容易。一般用在移动终端。下面我们来创建一个contacts数据库,并对它执行增删改查的基本操作。Sqlite数据库的创建要利用SQLiteOpenHelper这个类。如下:

public class ContactSqliteHelper extends SQLiteOpenHelper {

    /**
     * 数据库的名称 数据库查询的结果集 数据库的版本
     * @param context
     */
    public ContactSqliteHelper(Context context) {
        super(context, "contacts.db", null, 1);
    }

    /**
     * 数据库第一次被创建使用的方法
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table contacts (id integer primary key autoincrement,name varchar(20),number varchar(20))");
    }

    /**
     * 数据库的更新方法
     */
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub
    }

}

下面创建一个数据库的工具类,实现增删改查的四个方法

public class DatabaseUtils {

    private ContactSqliteHelper helper = null;
    
    public DatabaseUtils(ContactSqliteHelper helper){
        this.helper =helper;
    }
    
    /**
     * 增加操作
     * @param name
     * @param number
     */
    public void add(String name,String number){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("insert into contacts(name,number) values(?,?)",new Object[]{name,number});
        db.close();
    }
    
    /**
     * 查找操作
     * @param name
     * @return
     */
    public boolean find(String name){
        SQLiteDatabase db = helper.getWritableDatabase();
        Cursor cursor = db.rawQuery("select * from contacts where name=?", new String[]{name});
        boolean result = cursor.moveToNext();
        
        db.close();
        return result;
    }
    
    /**
     * 删除操作
     * @param name
     */
    public void delete(String name){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("delete from contacts where name=?",new Object[]{name});
        db.close();
    }
    
    /**
     * 更新操作
     * @param name
     * @param newnumber
     */
    public void update(String name,String newnumber){
        SQLiteDatabase db = helper.getWritableDatabase();
        db.execSQL("update contacts set number=?where name=?",new Object[]{newnumber,name});
        db.close();
        
    }
}

MainActivity中有四个按钮,分别实现点击事件。代码如下:

public class MainActivity extends Activity {
    ContactSqliteHelper helper = null;
    DatabaseUtils utils;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        helper = new ContactSqliteHelper(this);
        // 数据库被创建
        helper.getWritableDatabase();

        utils = new DatabaseUtils(helper);
    }

    /**
     * 增加操作
     *
     * @param view
     */
    public void insert(View view) {
        utils.add("小红", "10086");
        utils.add("小明", "12345");
        utils.add("小亮", "21147");
    }

    /**
     * 删除操作
     *
     * @param view
     */
    public void delete(View view) {
        utils.delete("小红");
    }

    /**
     * 查询操作
     *
     * @param view
     */
    public void search(View view) {
        boolean number = utils.find("小亮");
    }

    /**
     * 更新操作
     *
     * @param view
     */
    public void update(View view) {
        utils.update("小明", "44944");
    }
}

布局文件如


利用linux终端来看下结果:


注:com.example.db为这个apk的包名,有时在


0 0
原创粉丝点击