Xutis的DButils模块

本文详细探讨了Android开发中常用的Xutils库的DButils模块,包括其数据库操作、查询、插入、更新和删除功能,以及如何优化性能和处理并发问题。通过实例解析,帮助开发者更好地理解和应用Xutils进行数据库管理。
摘要由CSDN通过智能技术生成
public class MainActivity extends Activity {
    //相当于findviewbyid
    @ViewInject(R.id.editText_add_id)
    private EditText addIdEditText;
    @ViewInject(R.id.editText_add_name)
    private EditText addNameEditText;
    @ViewInject(R.id.editText_add_age)
    private EditText addAgeEditText;
    @ViewInject(R.id.editText_delete_id)
    private EditText deleteIdEditText;
    @ViewInject(R.id.editText_updata_id)
    private EditText updataIdEditText;
    @ViewInject(R.id.editText_updata_name)
    private EditText updataNameEditText;
    @ViewInject(R.id.textview)
    private TextView textView;

    private DbUtils db;
    private List<Person> listperPersons;
    private Person person;
    private String addid, addname, addage, deleteid, updataid, updataname;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ViewUtils.inject(this);

        // 获取一个可以操作数据的工具
        db = DbUtils.create(MainActivity.this);
        listperPersons = new ArrayList<Person>();

    }

    //给控件设置好了点击事件
    @OnClick(value = { R.id.button_add, R.id.button_delete, R.id.button_updata,
            R.id.button_find })
    public void myClick(View v) {
        switch (v.getId()) {
        case R.id.button_add:
            addid = addIdEditText.getText().toString().trim();
            addname = addNameEditText.getText().toString().trim();
            addage = addAgeEditText.getText().toString().trim();
            person = new Person();
            person.setId(addid);
            person.setName(addname);
            person.setAge(addage);
            // listperPersons.add(person);
            try {
                //将数据保存到sqlite数据库中
                db.save(person);
            } catch (DbException e) {
                e.printStackTrace();
            }

            Toast.makeText(MainActivity.this, "添加数据成功", 0).show();
            break;

        case R.id.button_delete:
            deleteid = deleteIdEditText.getText().toString().trim();

            /**
             * 参数一:要删除的字段 参数二:等号 参数三:要删除的字段的值
             * */
            WhereBuilder whereBuilder = WhereBuilder.b("id", "==", deleteid);
            /*
             * 参数一:需要删除的表   参数二:删除的条件
             */
            try {
                //类名就是表名
                db.delete(Person.class, whereBuilder);
            } catch (DbException e1) {
                e1.printStackTrace();
            }

            Toast.makeText(MainActivity.this, "删除数据成功", 0).show();
            break;
        case R.id.button_updata:
            updataid = updataIdEditText.getText().toString().trim();
            updataname = updataNameEditText.getText().toString().trim();
            person = new Person();
            person.setName(updataname);

            if (updataid == null) {
                Toast.makeText(MainActivity.this, "你是不是傻啊,id不能为空", 0).show();
            }
            if (updataid != null) {

                try {
                    /**
                     * 参数一:需要更新的字段 参数二:"=" 参数三:需要更新的字段的值
                     * */
                    WhereBuilder whereBuilder2 = WhereBuilder.b("id", "=",
                            updataid);
                    /**
                     * 参数一:新的数据 参数二:更新的条件 参数三:需要更新的列
                     * */
                    db.update(new Person(updataname), whereBuilder2, "name");
                } catch (DbException e) {
                    e.printStackTrace();
                }
                Toast.makeText(MainActivity.this, "更新数据成功", 0).show();
            }

            break;
        case R.id.button_find:
            try {
                // 参数是表名
                listperPersons = db.findAll(Person.class);
                StringBuffer sbBuffer = new StringBuffer();
                for (int i = 0; i < listperPersons.size(); i++) {
                    sbBuffer.append(listperPersons.get(i) + "\r\n");
                }

                textView.setText(sbBuffer.toString());

            } catch (DbException e) {
                e.printStackTrace();
            }
            Toast.makeText(MainActivity.this, "查找数据成功", 0).show();
            break;

        }

    }
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值