1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xcode_xiao-XAndrDB

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

XAndrDB

Открытый фреймворк ORM для баз данных Android.

Инструкция по использованию

Перед использованием данного фреймворка в первую очередь добавьте проект в ваш проект из корневой директории этого проекта, затем настройте ваш app в файле AndroidManifest.xml следующим образом:

    <application
        android:name="com.xcode.xandrdb.Session.SessionApplication"
        ……
    >

Теперь можно переходить к вопросам использования.

Без лишних слов, вот пример кода:

package com.xcode.xandrdb.mapper;

import com.xcode.xandrdb.User;
import com.xcode.xandrdb.annotation.Create;
import com.xcode.xandrdb.annotation.Delete;
import com.xcode.xandrdb.annotation.Insert;
import com.xcode.xandrdb.annotation.Select;
import com.xcode.xandrdb.annotation.Update;
import com.xcode.xandrdb.annotation.name;

public interface Test {

    // Вставка записи
    @Insert("INSERT INTO xiaolei ('sname', 'snumber') VALUES ('xiaolei', 'xiaolei')")
    public String insert();

    // Удаление записи
    @Delete("DELETE FROM xiaolei WHERE id = #{id}")
    public String delete(@Param("id") int id);

    // Обновление записи
    @Update("UPDATE xiaolei SET sname='xiaolei2', snumber='xiaolei2' WHERE (_id=#{id})")
    public String update(@Param("id") int id);

    // Выборка записей
    @Select("SELECT * FROM xiaolei WHERE _id = #{id}")
    public User[] select(@Param("id") int id);

    // Создание таблицы
    @Create("CREATE TABLE #{user.name} (_id INTEGER PRIMARY KEY AUTOINCREMENT, sname TEXT, snumber TEXT)")
    public String create(@Param("user") User user);
}

Здесь представлен набор мапперов для различных операций с базами данных. Давайте рассмотрим, как использовать эти мапперы:

Session session = SessionFactory.getSession(new SessionConfig().setDBName("xiaolei"));
Test t1 = session.getMapper(Test.class);
User[] users = t1.select(1);
System.out.println(Arrays.toString(users));
```Поддерживает кэширование данных, иногда требуется кэшировать данные, полученные от запроса, чтобы избежать повторной выборки из базы данных каждый раз при необходимости получения данных. Эта возможность поможет вам в этом.

```java
    // Выборка записей
    @Catch(500)
    @Select("SELECT * FROM xiaolei WHERE sname=#{name}")
    public List<User> select(@Param("name") String name);

Аннотация @Catch(500) принимает значение времени кэширования, которое вы задаете. Без указания значения время кэширования по умолчанию равно 2 * 1000 мс.

Поддерживает транзакции, иногда требуется массово вносить изменения в базу данных. Однако массовое внесение изменений может привести к замедлению работы всего приложения. Для решения этой проблемы вы можете использовать транзакции таким образом:

@Autowired
@Transactional
@Insert("INSERT INTO xiaolei ('sname', 'snumber') VALUES ('xiaolei', 'xiaolei')")
public String insert();

Когда вам требуется выполнить массовые операции с данными, вы можете использовать аннотацию @Transactional, чтобы решить эту проблему.

При тестировании в эмуляторе при циклическом внесении пятидесяти записей без использования Transaction затраты времени составили 220 мс.

С использованием Transaction время выполнения составило всего 7 мс. Кроме того, внутри используется обработчик для асинхронной работы, что никак не влияет на производительность приложения.Не забудьте использовать session.commit() после завершения всех операций. В противном случае изменения не будут применены.

Да, все операции с базой данных должны выполняться через объект Session. Затем используйте этот объект Session, чтобы получить маппер, который внутренне работает через динамическое проксирирование, предоставляя вам объект маппера. Операция над методами, определёнными в этом маппере, эквивалентна работе с базой данных.

Это полностью ориентированная на аспекты реализация, которая объединяет пользовательские аннотации, рефлексию и динамическое проксирирование для достижения мощных возможностей в рамках базы данных.

Когда-то...

Когда-то была настоящая любовь передо мной, Но я её не ценил, И когда она ушла, я начал жалеть о том, что это произошло. Наиболее болезненно для человека — это осознание потери чего-то важного. Если бы мне был дан шанс вернуться назад, я сказал бы этой девушке, что я её люблю! А если бы эта любовь должна была иметь срок действия, Я хотел бы, чтобы он продолжался сто тысяч лет!

Другие считают меня сумасшедшим, но я смеюсь над теми, кто этого не понимает. Не видишь ты могил великих воинов прошлого? Без вина и пищи они возделывали свои поля!

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

ORM — это фреймворк для работы с базами данных на платформе Android, MyBatis — его реализация. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xcode_xiao-XAndrDB.git
git@api.gitlife.ru:oschina-mirror/xcode_xiao-XAndrDB.git
oschina-mirror
xcode_xiao-XAndrDB
xcode_xiao-XAndrDB
master