/RushOrm

Object-relational mapping for Android

Primary LanguageJavaOtherNOASSERTION

This project is no longer maintained

See Room as the recommended alternative https://developer.android.com/training/data-storage/room


Build Status Coverage Status Android Weekly Android Arsenal Join the chat at https://gitter.im/Stuart-campbell/RushOrm

RushOrm

Object-relational mapping for Android

RushOrm replaces the need for SQL by mapping java classes to SQL tables.


What is the aim?

The aim is to abstract away all SQLite interaction under a very simple interface to make object storage incredibly quick to implement.


What projects is it right for?

  • Projects with complex data structures
  • Projects that want to implement database storage in the minimum amount of time
  • Projects that talk to a rest api

Why was RushOrm written?

  • Complex relationships - RushObjects support Lists of other RushObjects
  • SQL free migration
  • Easily extendable
  • No dependencies
  • Support asynchronous call
  • Be fast through compound inserts and selects
  • Support importing and exporting data to and from JSON
  • Unique ids to support merging databases
  • Supports conflict resolution when importing data
While there are a number of other ORMs, the areas many seem to fall short is the support of 'one to many' relationships, migration and extensions. While claiming all the same basic feature of most other ORMs RushOrm supports 'List' properties without having to add the parent object to it's children. It also handles migrating the class structure without any SQL scripts being required by the developer. Finally it is designed with the understanding that not every situation can be anticipated so instead it can be easily customized.

For getting started see http://www.rushorm.co.uk/


Rush jar can be downloaded from http://www.rushorm.co.uk/download.html alternatively it can be added as below.

Make sure your project is using maven central by including this in your gradle file:

repositories {
   mavenCentral()
}

Add the dependency in your build file:

dependencies {
   compile 'co.uk.rushorm:rushandroid:1.3.0’
}

Licence Apache License, Version 2.0

Copyright (C) 2015 Stuart Campbell Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.