Как получить последнюю запись за сегодня с помощью Android, Ormlite и JavaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как получить последнюю запись за сегодня с помощью Android, Ormlite и Java

Сообщение Anonymous »

Записи с моего Android – orm sqlite db

Код: Выделить всё

id,  name,  value,         date/time
------------------------------------
1   John    23    05/17/24  2:20 AM
2   Paul    26    05/17/24  5:25 AM
3   Mathew  27    05/17/24  5:28 PM
4   Sara    23    05/17/24  5:30 PM
Согласно приведенному ниже коду я могу получить все записи в виде списка .
В этом коде я передаю начало, конец параметр в функции getRecordsBetween() как сегодняшняя дата (

Код: Выделить всё

17-5-2024
).
Теперь, как я могу получить только последнюю запись/последнюю запись, вставленную в базу данных на сегодня, т.е. (

Код: Выделить всё

4, Sara, 23, 05/17/24  5:30 PM
) для возврата в виде списка
Примечание: DateTime start, DateTime end является только условием фильтра на сегодня/один день.

Также я использую функцию Joda - DateTime.
RecordDao.java

Код: Выделить всё

import android.util.Log;
import androidx.annotation.NonNull;
import com.j256.ormlite.stmt.QueryBuilder;
import com.j256.ormlite.stmt.SelectArg;
import org.joda.time.DateTime;
import org.joda.time.DateTimeConstants;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

...
public List getRecordsBetween(DateTime start, DateTime end) {
if (start == null || end == null) {
return new ArrayList();
}
start = start.withTimeAtStartOfDay();
end = end.withTime(DateTimeConstants.HOURS_PER_DAY - 1,
DateTimeConstants.MINUTES_PER_HOUR - 1,
DateTimeConstants.SECONDS_PER_MINUTE - 1,
DateTimeConstants.MILLIS_PER_SECOND - 1);
try {
return getQueryBuilder()
.orderBy(Record.Column.DATE, true)
.where().gt(Record.Column.DATE, start)
.and().lt(Record.Column.DATE, end)
.query();
} catch (SQLException exception) {
Log.e(TAG, exception.toString());
return new ArrayList();
}
}
...

Код: Выделить всё

[1] Trying/No success
-
Я пытался получить первую запись с помощью queryForFirst(), но требовалось вернуть результат как запись, потому что это одна запись, а не List

Код: Выделить всё

return join(Record.class).orderBy(Record.Column.DATE, false)
.where().le(Record.Column.DATE, DateTime.now()).queryForFirst();

Код: Выделить всё

[2] Another lookup step
-
Если я отфильтровал или очистил все записи из списка , кроме последней, я смогу получить желаемый результат.

Код: Выделить всё

recordsOfDay
— это ArrayList, содержащий список всех четырех записей.

Код: Выделить всё

recordsOfDay.subList(0, recordsOfDay.size()-1).clear();
Я хочу использовать queryForFirst(), но не получилось. Пожалуйста, предложите мне это.

Подробнее здесь: https://stackoverflow.com/questions/784 ... e-and-java
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как получить последнюю запись за сегодня с помощью Android, Ormlite и Java
    Anonymous » » в форуме Android
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Обновить конкретный столбец данного списка в ORMLite
    Anonymous » » в форуме C#
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Ntext в ServiceStack.OrmLite
    Anonymous » » в форуме C#
    0 Ответы
    33 Просмотры
    Последнее сообщение Anonymous
  • Ntext в ServiceStack.OrmLite
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Пейджинг всех результатов в сервисном стеке ormlite
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»