摘要:本文将带你了解Android开发之数据库DBFlow,希望本文对大家学Android有所帮助。
一、项目配置
1、根目录下的build.gradle 中添加
maven { url "https://www.jitpack.io" }
如下:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
如下:
2、app目录下的build.gradle 中添加
apply plugin: 'com.neenbedankt.android-apt'
def dbflow_version = "4.0.2"
依赖:
apt "com.github.Raizlabs.DBFlow:dbflow-processor:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow-core:${dbflow_version}"
compile "com.github.Raizlabs.DBFlow:dbflow:${dbflow_version}"
// sql-cipher database encyrption (optional)
compile "com.github.Raizlabs.DBFlow:dbflow-sqlcipher:${dbflow_version}"
3、创建自己的Application
public class XApplication extends Application{
@Override
public void onCreate() {
super.onCreate();
FlowManager.init(this);
}
}
清单文件配置:
二、使用
1、创建一个数据库类
/** * @author xqx * @email djlxqx@163.com * blog://www.cnblogs.com/xqxacm/ * createAt 2017/11/22 * description: 数据库类*/ @Database(name = SchoolDatabase.Name , version = SchoolDatabase.VERSION)public class SchoolDatabase { static final String Name = "SchoolDB"; //数据库名 static final int VERSION = 1; //数据库版本号 } 2、创建一个表类 /** * @author xqx * @email djlxqx@163.com * blog://www.cnblogs.com/xqxacm/ * createAt 2017/11/22 * description: 学生表 属于SchoolDatabase数据库的*/ @Table(database = SchoolDatabase.class)public class Student extends BaseModel{ //主键 一个表必须有至少一个主键 // (autoincrement = true) 表示该字段是自增的,可以不设置 ,默认false @PrimaryKey(autoincrement = true) long id ; // 名字 @Column String name; // 年龄 @Column int age; //---------------------以下为可有可无的---------------// //注意 一定要有一个无参的构造方法 public Student() { } /** * 构造方法 看情况添加 可不加 * @param name * @param age */ public Student(String name, int age) { this.name = name; this.age = age; } //Getter 和 Setter 方法,自己添加、可有可无 public long getId() { return id; } public void setId(long id) { this.id = id; } 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; } } 3、增删改查 Student student = new Student(); student.setName("XQX"); student.setAge(18); student.save(); //保存 student.update(); // 更改 student.delete(); //删除 student.insert(); // 添加 查询: /** * 查询年龄为100的学生记录 * @param age * @return */ public Student findSingleStudent(int age){ Student student = SQLite.select().from(Student.class).where(Student_Table.age.is(100)).querySingle(); return student; } public List getAllStudents(){ List<Student> students = SQLite.select().from(Student.class).queryList(); return students; } 测试: for (int i = 0; i < 10; i++) { addStudent("学生:"+i , i); } List<Student> students = SQLite.select().from(Student.class).queryList(); for (int i = 0; i < 10; i++) { Log.i("xqxinfo","学生表中的所有记录:"+students.get(i).toString()); }
结果:
注意:如果一个表中的对象没有的话,save等同于insert都是添加记录
如果这个对象在表中存在,save即更新,不是添加
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号