XUtils之DButils用法简介,非常容易使用

来源:互联网 发布:网络任务源码 编辑:程序博客网 时间:2024/06/05 11:01

今天向大家介绍一下XUtils框架中的DButils的用法,如果之前有数据库操作的一些基础知识的话,用起来超级简单哟!不废话了,直接上代码:

1.首先定义一个实体类Student.java,可以把它理解为一张表,其中的属性值,可以理解为表中的列名,其中几个常用注解的作用,我也都介绍了。

package com.jinke.myapplication2;

import com.lidroid.xutils.db.annotation.Column;
import com.lidroid.xutils.db.annotation.Id;
import com.lidroid.xutils.db.annotation.Table;
/**
 * 一个实体类对应一个表 student为表名
 */
@Table(name = "student")  //指定该表的表名为student
public class Student {

    @Id(column = "sid")   //指定主键(如果不指定的话,该实体类必须有一个id属性)
    private int sid;
    @Column(column = "name")  //表示普通列
    private String name;
    @Column(column = "age")   //表示普通列
    private int age;

    public int getSid() {
        return sid;
    }

    public void setSid(int sid) {
        this.sid = sid;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "sid=" + sid +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

2.好啦实体类有了下面直接操作起来,增删改查,下面增删改查对应着布局文件中几个按钮,布局文件我就不写了,很简单

package com.jinke.myapplication2;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
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 java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {


    private DbUtils db;
    private ArrayList<Student> students = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        /**
         * 创建数据库
         * 参数一:上下文对象
         * 参数二:数据库名
         */
        db = DbUtils.create(this,"mydb.db");
    }

    //初始化一些数据
    private ArrayList<Student> addData() {
        for (int i = 0; i < 10; i++) {
            Student student = new Student();
            student.setName("小明" + i);
            student.setAge(i);
            students.add(student);
        }
        return students;
    }

    /**
     * 增
     * db.save(student)增加一个数据
     * db.saveAll(list)增加集合中的所有数据
     */
    public void save(View v) {
        try {
            db.saveAll(addData());
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    /**
     * 删
     * 参数1:Class对象,也就是你要删哪张表
     * 参数2:条件语句 比如下面的意思就是 删除name等于小明1的那行数据
     */
    public void del(View v){
        try {
            db.delete(Student.class, WhereBuilder.b("name","=","小明1"));
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    /**
     * 改
     * 参数一:student对象,也就是你要改成什么样的值
     * 参数二:条件 就是改哪点 比如下面改name等于小明6的那条数据,
     * 参数三和四:改name列和age列(这个是可变参数对应你上面修改哪几列数据)
     */
    public void update(View v){
        Student student = new Student();
        student.setName("李四");
        student.setAge(20);
        try {
            db.update(student,WhereBuilder.b("name","=","小明6"),"name","age");
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    /**
     * 查找所有数据
     * 返回一个list集合
     */

    public void findAll(View v){
        try {
            List<Student> list = db.findAll(Student.class);
            for (Student student : list){
                System.out.println(student.toString());
            }
        } catch (DbException e) {
            e.printStackTrace();
        }
    }

    /**
     * 条件查找
     * 比如下面,查找Student表中sid大于5并且name匹配小什么的数据
     */
    public void find(View v){
        try {
            List<Student> list = db.findAll(Selector.from(Student.class).where("sid",">",5).and("name","like","小%"));
            for (Student student : list){
                System.out.println(student.toString());
            }
        } catch (DbException e) {
            e.printStackTrace();
        }
    }
}

这样就能成功创建数据库并进行增删改查了,上面使用的API只是几个简单的,其中还有许多方法我没有写出来,大家可以自己尝试着学习!!!


1 0
原创粉丝点击