自己整理的一个Android数据库工具框架

https://github.com/kexuan8755/JTools

JTools for android 一个数据库工具框架和一些常用的方法整理

DbUtils: 数据列类型

public enum ColumnType {
    COLUMN,//普通数据列
    PRIMARY,//主键值
    UNIQUE, //数据列唯一限制
    FOREIGN,//外健限制
    EQUALS   //对象相等默认的比较数据
}

对于数据列定义通常会有Primary、Unique、Foreign,很多时候我们用不上这些定义,当时又想有默认的比对条件所以引入了Equals类型;Column只是一个普通行。

这样定义一个数据表的信息,当使用DbUtils操作增删改查时将自动引入数据库操作

@Table
public class Person {
    @Column(notNull=true)
    int id;
    @Column(type=ColumnType.UNIQUE)
    String name;
    @Column
    String number;
    public Person(){}
    public Person(int id, String name, String number){
        this.id = id;
        this.name = name;
        this.number = number;
    }
    ……
}

添加或者替换

public void replace(final Person person) {
    TaskUtils.asyncExec(new TaskUtils.Task<Person>() {
        @Override
        public void run() {
            utils.insertOrReplace(person);
        }
    });
}

添加

public void insert(final Person person) {
    TaskUtils.asyncExec(new TaskUtils.Task<Person>() {
        @Override
        public void run() {
            utils.insertOrReplace(person);
        }
    });
}

更新

public void update(final Person old, final Person np) {
    TaskUtils.asyncExec(new TaskUtils.Task<Void>() {
        @Override
        public void run() {
            utils.update(old, np);
        }
    });
}

public void update(final Person person, final String...columns) {
    TaskUtils.asyncExec(new TaskUtils.Task<Void>() {
        @Override
        public void run() {
            utils.update(person, columns);
        }
    });
}

删除

public void delete() {
    TaskUtils.asyncExec(new TaskUtils.Task<Void>() {
        @Override
        public void run() {
            utils.delete(Person.class);
        }
    });
}

public void delete(final Person person, final String...columns) {
    TaskUtils.asyncExec(new TaskUtils.Task<Void>() {
        @Override
        public void run() {
            utils.delete(person, columns);
        }
    });
}

查询

public void query() {
    TaskUtils.asyncExec(new TaskUtils.Task<List<Person>>() {
        @Override
        public void run() {
            data = utils.query(Person.class);
        }

        @Override
        public void finish(List<Person> data) {
            print(data);
        }
    });
}

public void query(final Person person, final String...columns) {
    TaskUtils.asyncExec(new TaskUtils.Task<List<Person>>() {
        @Override
        public void run() {
            data = utils.query(person, true, columns);
        }

        @Override
        public void finish(List<Person> data) {
            print(data);
        }
    });
}

public void query(@NonNull final String[] columns) {
    TaskUtils.asyncExec(new TaskUtils.Task<List<Person>>() {
        @Override
        public void run() {
            data = utils.query(Person.class, true, columns);
        }

        @Override
        public void finish(List<Person> data) {
            print(data);
        }
    });
}

public void query(final String selection, final String...args) {
    query(null,true,selection,args,null,null,null,null,null,null);
}

public void query(final String[] columnNames, final boolean distinct, final String selection, final String[] selectArgs,
                  final String [] groupByColumns, final String having, final String [] orderByColumns, final String orderBy, final String limit, final String offset) {
    TaskUtils.asyncExec(new TaskUtils.Task<List<Person>>() {
        @Override
        public void run() {
            data = utils.query(Person.class,columnNames,distinct,selection,selectArgs,groupByColumns,having,orderByColumns,orderBy,limit,offset);
        }

        @Override
        public void finish(List<Person> data) {
            print(data);
        }
    });
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值