Android 数据库使用-org.xutils

本文记载在项目中数据库的使用-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 )
     private int id;
     @Column (name = "name" )
     private String name;
     @Column (name = "age" )
     private String age;
     public String getAge() {
         return age;
     }
     public void setAge(String age) {
         this .age = age;
     }
     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;
     }
}

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

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

DbManager db = x.getDb(daoConfig);
LYJPerson person1= new LYJPerson();
person1.setName( "liyuanjinglyj" );
person1.setAge( "23" );
LYJPerson person2= new LYJPerson();
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。

你可能感兴趣的:(Android 数据库使用-org.xutils)