安卓开发者联盟

安卓快速开发框架(十三)XBaseAndroid本地使用SQLi

2018-07-05  本文已影响70人  往后余生9375

创建实体

@DatabaseTable
public class Student {

    @DatabaseField
    private int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @DatabaseField
    private String name;

    public String getName() {
        return name;
    }

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

创建Dao

public class StudentDao {
    private BaseDao<Student,Integer> studentDao;//数据库操作对象

    public StudentDao(Context context){
        studentDao = new BaseDaoImpl<>(context,Student.class);
    }

    public int add(Student s){
        try {
            return studentDao.save(s);
        } catch (SQLException e) {
            e.printStackTrace();
            return 0;
        }
    }
}

初始化数据库信息

建议在Application或启动界面做好
DatabaseHelper.setDatabase("easy",2);//设置数据库版本及名称
DatabaseHelper.addTable(Student.class);//必须加载表。

演示

StudentDao sd = new StudentDao(context);
Student s = new Student();
s.setId(1);
s.setName("ggeegegerger");
int res = sd.add(s);
toast("添加学生结果是:" + res);

监听数据库版本

DatabaseHelper.getInstance(this).setDatabaseVersionChangeListener(new DatabaseVersionChangeListener() {
    @Override
    public void onChange(int oldVersion, int newVersion) {
    toast("数据库版本发生变化:老版本:"+oldVersion +" 新版本:"+newVersion);
    if(newVersion == 2){
        try {
        DatabaseHelper.getInstance(getContext()).getDao(Student.class).executeRaw("ALTER TABLE 'student' ADD COLUMN sex int");
        toast("数据更新成功");
        } catch (SQLException e) {
        e.printStackTrace();
        toast("数据更新失败");
        }
    }
    }
});

toast("当前数据库版本:"+DatabaseHelper.getInstance(this).getVersion() +"数据库名:"+DatabaseHelper.getInstance(this).getDatabaseName());
上一篇下一篇

猜你喜欢

热点阅读