Если вы разрабатываете приложения для Android, то вам, скорее всего, нужно хранить данные. Если данных много, то для этого хорошо подойдет база данных SQLite. Для хранения данных в БД вам придется выбирать между SQL-запросами, используя Content Provider, или с помощью ORM .
ORM (англ. object-relational mapping, рус. объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных». Существуют как проприетарные, так и свободные реализации этой технологии.ORM (англ. object-relational mapping, рус. объектно-реляционное отображение) — технология программирования, которая связывает базы данных с концепциями объектно-ориентированных языков программирования, создавая «виртуальную объектную базу данных».
Википедия
В этой статье рассмотрю некоторые из ORM-библиотек, которые вы можете использовать в своих будущих проектах.
OrmLite
OrmLite первая ORM, которая приходит в голову. Однако OrmLite — это не Android-ORM, это Java-ORM с поддержкой баз данных SQL. Он может быть использован в любом месте где используется Java.
Аннотация @DatabaseTable служит для определения класса как таблицы, а аннотация @DatabaseField должна быть над каждым полем в классе.
Простой пример использования OrmLite
@DatabaseTable(tableName = "users")
public class User {
@DatabaseField(id = true)
private String username;
@DatabaseField
private String password;
public User() {
// ORMLite нуждается в конструкторе без аргументов
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
// геттеры и сеттеры
public String getUserame() {
return this.username;
}
public void setName(String username) {
this.username = username;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
}
OrmLite для Android — это проект с открытым исходным кодом, который вы можете найти на GitHub . Для получения более подробной информации перейдите к официальной документации.
SugarORM
SugarORM это ORM, предназначен только для Android. Он поставляется с простым в освоении API, который легко запомнить. Всего есть 4 метода: save(), delete() and find() (or findById()).
Настроим приложение, чтобы использовать SugarORM, добавив мета-данные AndroidManifest.xml:
<meta-data android:name="DATABASE" android:value="my_database.db"> <meta-data android:name="VERSION" android:value="1"> <meta-data android:name="QUERY_LOG" android:value="true"> <meta-data android:name="DOMAIN_PACKAGE_NAME" android:value="com.my-domain">
Теперь вы можете использовать эту ORM, унаследовав нужные классы от SugarRecord
public class User extends SugarRecord<User> {
String username;
String password;
int age;
@Ignore
String bio; //это будет проигнорировано SugarORM
public User() { }
public User(String username, String password,int age){
this.username = username;
this.password = password;
this.age = age;
}
}
Теперь добавим нового пользователя:
User johndoe = new User(getContext(),"john.doe","secret",19); johndoe.save(); //stores the new user into the database
Удалим всех пользователей в возрасте 19 лет:
List<User> nineteens = User.find(User.class,"age = ?",new int[]{19});
foreach(user in nineteens) {
user.delete();
}
Для получения большей информации, читайте онлайн-документацию .
GreenDAO
Когда дело доходит до производительности, ‘быстрый’ и GreenDAO являются синонимами. На сайте библиотеки говорится, что “большинство объектов могут быть вставлены, обновлены и загружены со скоростью нескольких тысяч объект в секунду”. Если это не так уж хорошо, эти приложения просто не станет им пользоваться. По сравнению с OrmLite, это почти в 4,5 раза быстрее. Эту библиотеку используют довольно известные приложения такие как Pinterest, Path, WiFi Map Pro и другие. Эта библиотека почти в 4,5 раза быстрее OrmLite.

Библиотека весит меньше 100 килобайт, что не сильно повлияет на размер APK.
Вы можете просмотреть исходный код GreenDAO на GitHub , а также почитать официальную документацию GreenDAO .
Active Android
Как и другие ORM, ActiveAndroid позволяет хранить и извлекать записи из SQLite без написания SQL-запросов. Можно подключить ActiveAndroid добавив jar-файл в папку /libs вашего проекта.
После подключения его, вы должны добавить эти мета-данные в AndroidManifest.xml :
<meta-data android:name="AA_DB_NAME" android:value="my_database.db"> <meta-data android:name="AA_DB_VERSION" android:value="1">
После добавления мета-данных, вы можете вызвать метод ActiveAndroid.initialize() в вашем Activity:
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActiveAndroid.initialize(this);
//rest of the app
}
}
Теперь, когда приложение настроено на использование ActiveAndroid, вы можете создавать модели, как классы Java, используя аннотации:
@Table(name = "User")
public class User extends Model {
@Column(name = "username")
public String username;
@Column(name = "password")
public String password;
public User() {
super();
}
public User(String username,String password) {
super();
this.username = username;
this.password = password;
}
}
Это простой пример использования ActiveAndroid. Документация поможет вам понять, как использовать ActiveAndroid ORM дальше.
Заключение
Это не все из существующих AndroidORM. Есть также Androrm и ORMDroid. Знание SQL — навык, который должен иметь каждый разработчик, но писать SQL-запросы скучно, особенно, когда есть так много ORM. Если они делают вашу работу проще, то почему бы не начать использовать их?
Источник: 5 of the Best Android ORMs
