Thanks to visit codestin.com
Credit goes to github.com

Skip to content

therealandroid/SqliteModelMapper

Repository files navigation

SqliteModelMapper

An attempt to creating an abstraction to easily work with Relational Database in Android.

Libraries: RxJava Reflection QueryBuilder -> By @augustoccesar

Usage

Initialize in your Application

        Configuration.setDatabase(Database.SQLITE);

        SchemeConfiguration.initialize(new String[]{
                TableGenerator.from(University.class),
                TableGenerator.from(Course.class),
                TableGenerator.from(User.class)
        }, new String[]{
                "DROP TABLE IF EXISTS " + TableGenerator.getTableName(University.class),
                "DROP TABLE IF EXISTS "+ TableGenerator.getTableName(Course.class),
                "DROP TABLE IF EXISTS "+ TableGenerator.getTableName(User.class),
        }, "sample.db", 1);

Usage

     QueryRelation universityAndCourse = new QueryRelation(new ClassTable("u", User.class))
                .include("university", new ClassTable("un", University.class))
                .include("course", new ClassTable("co", Course.class));


        SelectBuilder allUsers = new SelectBuilder()
                .select(
                        new String[]{
                                "u.id", "u.first_name", "u.last_name", "u.course_id", "u.university_id",
                                "un.id", "un.name", "un.initials",
                                "co.id", "co.name"
                        })
                .from("user u")
                .joins(
                        new Join(Join.Type.INNER_JOIN).table("university un").on("u.university_id = un.id"),
                        new Join(Join.Type.INNER_JOIN).table("course co").on("u.course_id = co.id")
                );

        try {
            new SelectHelper<User>(context)
                    .query(allUsers)
                    .from(User.class)
                    .withRelation(universityAndCourse)
                    .executeQueryAsync()
                    .subscribeOn(Schedulers.newThread())
                    .observeOn(AndroidSchedulers.mainThread())
                    .doOnError(throwable -> {
                        //error
                    })
                    .subscribe(userList -> {
                        //success
                    });
        } catch (SQLException e) {
            e.printStackTrace();
        }

DONE

    Inserting queries
    Selecting queries

TODO

    Delete

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages