Android 数据库使用-org.xutils

本文详细介绍了在Android项目中使用org.xutils进行数据库管理的方法,包括初始化配置、创建实体类、数据的增删改查操作。通过自定义Application类设置数据库配置,并展示了如何在实体类中封装数据库操作方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文记载在项目中数据库的使用-org.xutils

使用xUtils的第一步就是必须创建自己的Application类,代码如下:

private static DbManager.DaoConfig daoConfig;

初始化

x.Ext.init(this);
x.Ext.setDebug(true);

daoConfig = new DaoConfig()
        // 数据库的名字
                .setDbName("drawpanel")
                // 保存到指定路径
                // .setDbDir(new
                // File(Environment.getExternalStorageDirectory().getAbsolutePath()))
                // 数据库的版本号
                .setDbVersion(1)
                // 数据库版本更新监听
                .setDbUpgradeListener(new DbUpgradeListener() {
                    @Override
                    public void onUpgrade(DbManager arg0, int arg1, int arg2) {
                        LogUtil.e("数据库版本更新了!");
                    }
                });

有必要说明的一点是setDbDir(new File(“/sdcard”)),可以将数据库存储在你想存储的地方,如果不设置,那么数据库默认存储在/data/data/你的应用程序/database/xxx.db下。这里我们就默认放在应用程序下。

然后 建立一个实体类

@Table(name="lyj_person")
public class LYJPerson {
    @Column(name ="id", isId = true)
    privateint id;
    @Column(name ="name")
    privateString name;
    @Column(name ="age")
    privateString age;
    publicString getAge() {
        returnage;
    }
    publicvoid setAge(String age) {
        this.age = age;
    }
    publicint getId() {
        returnid;
    }
    publicvoid setId(intid) {
        this.id = id;
    }
    publicString getName() {
        returnname;
    }
    publicvoid setName(String name) {
        this.name = name;
    }
}

通过实体类可以直接操作数据库。

我们在Application中加入如下代码,向数据库添加数据:

DbManager db = x.getDb(daoConfig);
LYJPerson person1=newLYJPerson();
person1.setName("liyuanjinglyj");
person1.setAge("23");
LYJPerson person2=newLYJPerson();
person2.setName("xutilsdemo");
person2.setAge("56");
try {
    db.save(person1);
    db.save(person2);
} catch(DbException e) {
    e.printStackTrace();
}
简单的数据库操作

在Android APP中,为优化用户体验会有大量的地方使用本地数据,一般都会封装一个数据结构的类,例如

public class ClassBeanDao {
    private static DbManager manager;

    public ClassBeanDao() {
        manager = x.getDb(MyApplication.getDaoConfig());
    }

    /**
     *
     * 保存数据
     *
     * @return
     */

    public void saveClassBean(ClassBean cb) {
        try {
            ClassBean classbean = getClassBean(cb.classId);
            if (classbean == null) {
                Log.e(Utility.LOG_TAG, "保存班级数据");
                manager.saveBindingId(cb);
            } else {
                cb.id = classbean.id;
                updateClassBean(cb);
            }
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "保存班级数据失败");
            e.printStackTrace();
        }

    }

    public ClassBean getClassBean(String classId) {
        ClassBean cb = null;
        try {
            cb = manager.selector(ClassBean.class).where("classId", "=", classId).findFirst();
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "查询班级失败");
            e.printStackTrace();
        }
        Log.e(Utility.LOG_TAG, "查询班级" + "sb" + cb);
        return cb;
    }

    public ClassBean getClassBeanIsSelect() {
        ClassBean cb = null;
        try {
            cb = manager.selector(ClassBean.class).where("isSelect", "=", 2).findFirst();
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "查询班级失败");
            e.printStackTrace();
        }
        Log.e(Utility.LOG_TAG, "查询班级" + "sb" + cb);
        return cb;
    }

    public List<ClassBean> getClassBeans() {
        List<ClassBean> cbs = new ArrayList<ClassBean>();
        try {
            cbs = manager.selector(ClassBean.class).orderBy("orderTime").findAll();
        } catch (Exception e) {
            e.printStackTrace();
            Log.e(Utility.LOG_TAG, "查询班级失败。。。。。。。。。。。。。。。");
        }
        Log.e(Utility.LOG_TAG, "查询班级数量。。。。。。。。。。。。。。。");
        return cbs;
    }

    public List<ClassBean> getClassBeanFirstPage() {
        List<ClassBean> cbs = new ArrayList<ClassBean>();
        try {
            cbs = manager.selector(ClassBean.class).where("page", "=", 1).orderBy("orderTime").findAll();
        } catch (Exception e) {
            e.printStackTrace();
            Log.e(Utility.LOG_TAG, "查询班级失败。。。。。。。。。。。。。。。");
            return cbs;
        }
        Log.e(Utility.LOG_TAG, "查询班级数量。。。。。。。。。。。。。。。");
        return cbs;
    }

    public void updateClassBean(ClassBean cb) {
        try {
            Log.e(Utility.LOG_TAG, "班级更新状态任务状态.............");
            manager.update(cb, "classId", "className", "masterTeaName", "UnSubmit", "unPublish", "page", "orderTime");
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "更新失败");
            e.printStackTrace();
        }
    }

    public void updateClassBeanSelect(ClassBean cb) {
        try {
            Log.e(Utility.LOG_TAG, "班级更新状态任务状态.............");
            manager.update(cb, "isSelect");
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "更新失败");
            e.printStackTrace();
        }
    }

    public void deleteClassBean(ClassBean cb) {
        try {
            manager.delete(cb);
            Log.e(Utility.LOG_TAG, "班级表删除.............");
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "删除失败");
            e.printStackTrace();
        }
    }

    public void deleteClassBeanById(String classId) {
        try {
            manager.execNonQuery("delete from ClassBean where classId=" + classId);
            Log.e(Utility.LOG_TAG, "data删除未提交任务.............");
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "删除失败");
            e.printStackTrace();
        }
    }

    public void deleteClassBeanTable() {
        try {
            manager.dropTable(ClassBean.class);
            Log.e(Utility.LOG_TAG, "表已删除.............");
        } catch (Exception e) {
            Log.e(Utility.LOG_TAG, "删除失败");
            e.printStackTrace();
        }
    }

    // 删除全部数据
    public void deleteALL() {
        List<ClassBean> cbs = null;
        try {
            cbs = manager.selector(ClassBean.class).findAll();
            for (int i = 0; i < cbs.size(); i++) {
                deleteClassBean(cbs.get(i));
            }
        } catch (Exception e) {
            e.printStackTrace();
            Log.e(Utility.LOG_TAG, "删除classbean表数据失败。。。。。。。。。。。。。。。");
        }
    }

}

在项目中使用,因需求而定

引用包使用的是xutils-3.3.20.jar。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值