Android 利用xUtils框架实现对sqllite的增删改查

首先下载xUtils,下载地址:https://github.com/wyouflf/xUtils  把下载好的文件压缩,把里面的jar包拷进项目中如图所示:

这里新建一个User类进行测试增删改查

package com.example.xutilsdemo;

public class User {
    private int id;
    private String name;
    private String email;
    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;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public User(String name, String email) {
        this.name = name;
        this.email = email;
    }
    public User(){
        
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", email=" + email + "]";
    }
     
}

核心代码:

package com.example.xutilsdemo;

import java.util.List;

import com.lidroid.xutils.DbUtils;
import com.lidroid.xutils.db.sqlite.Selector;
import com.lidroid.xutils.db.sqlite.WhereBuilder;
import com.lidroid.xutils.exception.DbException;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    //直接使用Dbutils,如果不能使用这个类,说明包没有导入成功
    DbUtils db ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //创建数据库,名称为mydb
        db= DbUtils.create(this,"mydb");
    }

    //保存数据事件
    public void saveClick(View v){
        DbUtils db = DbUtils.create(this,"mydb");
        User user = new User("hyy","272958293@qq.com"); //这里需要注意的是User对象必须有id属性,或者有通过@ID注解的属性
        try {
            db.save(user);
            Toast.makeText(this, "ok",Toast.LENGTH_SHORT).show();
        } catch (DbException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        } // 使用saveBindingId保存实体时会为实体的id赋值
    }
    
    //查询数据事件
    public void queryClick(View v){
        try {
            List<User> list=db.findAll(User.class);
            for (User user : list) {
                System.out.println(user);
            }
        } catch (DbException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }
    
    //根据条件查询事件
    public void queryByClick(View v){
        try {
            User user=db.findFirst(Selector.from(User.class).where("name","=","hyy"));
            Toast.makeText(this,user.toString(), Toast.LENGTH_SHORT).show();
        } catch (DbException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }
    
    //更新数据事件
    public void updateClick(View v){
        User user=new User();
        user.setId(1);
        user.setName("huyuan");
        user.setEmail("272958293@qq.com");
        
        try {
            db.update(user,"name","email");
        } catch (DbException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }
    //删除事件
    public void deleteClick(View v){
        try {
            db.delete(User.class,WhereBuilder.b("id", "=", "1"));
        } catch (DbException e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
    }
}

 

posted @ 2016-02-26 16:05  hyyweb  阅读(3191)  评论(0编辑  收藏  举报