RushOrm заменяет необходимость в SQL, сопоставляя классы Java с таблицами SQL.
Хотя существует ряд других ORM, области, в которых многие из них, похоже, не дотягивают, — это поддержка отношений «один ко многим», миграция и расширения. Утверждая все те же основные функции, что и большинство других ORM, RushOrm поддерживает свойства «List» без необходимости добавления родительского объекта к его дочерним элементам. Он также обрабатывает миграцию структуры классов без каких-либо SQL-скриптов, требуемых разработчиком. Наконец, он разработан с пониманием того, что не каждую ситуацию можно предвидеть, поэтому вместо этого его можно легко настроить.
Способ 1:
Через library сгенерировать har-пакет, добавить har-пакет в папку libs.
В entry gradle добавить следующий код:
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
Способ 2:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:RushOrm_rushohos:1.0.6'
Через DevEco studio и скачивание SDK. Проект в build.gradle файл в dependencies → classpath версию изменить на соответствующую версию (то есть версию, используемую в вашем новом проекте IDE).
1.
public class Car extends RushObject {
public String color;
public Engine engine;
public String anotherField;
@RushList(classType = Wheel.class)
public List<Wheel> wheels;
public Car(){
/* Empty constructor required */
}
public Car(String color, Engine engine){
this.color = color;
this.engine = engine;
}
}
public class MainAbility extends Ability {
@Override
public void onStart(Intent intent) {
super.onStart(intent);
super.setMainRoute(MainAbilitySlice.class.getName());
List<Class<? extends Rush>> classes = new ArrayList<>();
classes.add(Car.class);
classes.add(Engine.class);
classes.add(Wheel.class);
OhosInitializeConfig ohosInitializeConfig = new OhosInitializeConfig(getApplicationContext(), classes);
RushOhos.initialize(ohosInitializeConfig);
}
}
2.
Button btnSave = (Button) findComponentById(ResourceTable.Id_btn_save);
Button btnSelect = (Button) findComponentById(ResourceTable.Id_btn_select);
Button btnDel = (Button) findComponentById(ResourceTable.Id_btn_del);
Text tvShow = (Text) findComponentById(ResourceTable.Id_text_show);
//сохранение
btnSave.setClickedListener(component -> {
final long startTime = System.currentTimeMillis();
final int numberToSave = 100;
List<Car> cars = new ArrayList<>(numberToSave);
for (int i = 0; i < numberToSave; i++) {
Car car = new Car("Red", new Engine());
car.wheels = new ArrayList<>();
for (int j = 0; j < 4; j++) {
car.wheels.add(new Wheel("Michelin"));
}
cars.add(car);
}
RushCore.getInstance().save(cars, () -> {
long endTime = System.currentTimeMillis();
final double saveTime = (endTime - startTime) / 1000.0;
getAbility().getContext().getUITaskDispatcher().asyncDispatch(new Runnable() {
@Override
public void run() {
tvShow.setText("Сохранение успешно! Общее затраченное время:"+String.format("%1$,.2f s", saveTime));
}
``` ```
});
});
});
//查询
btnSelect.setClickedListener(component -> {
new Thread(() -> {
List<Car> cars = new RushSearch().find(Car.class);
getAbility().getContext().getUITaskDispatcher().asyncDispatch(new Runnable() {
@Override
public void run() {
LogUtil.error("test", "Rush main select complete====");
tvShow.setText("查询成功:" + JSON.toJSONString(cars));
}
});
}).start();
});
//删除
btnDel.setClickedListener(component -> new Thread(() -> {
RushCore.getInstance().deleteAll(Car.class);
RushCore.getInstance().deleteAll(Engine.class);
RushCore.getInstance().deleteAll(Wheel.class);
getAbility().getContext().getUITaskDispatcher().asyncDispatch(new Runnable() {
@Override
public void run() {
tvShow.setText("删除成功");
}
});
}).start());
Лицензировано согласно Apache License, Version 2.0
Авторские права (C) 2015 Стюарт Кэмпбелл.
Лицензировано в соответствии с лицензией Apache, версия 2.0 («Лицензия»); вы не можете использовать этот файл, кроме как в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое в соответствии с настоящей Лицензией, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )