Kotlin for Android Developers


 Writing and requesting data


Download 1.04 Mb.
Pdf ko'rish
bet54/79
Sana18.06.2023
Hajmi1.04 Mb.
#1588404
1   ...   50   51   52   53   54   55   56   57   ...   79
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )

19.2 Writing and requesting data
The
SqliteOpenHelper
is just the tool, the channel between object oriented and SQL worlds. We’ll
use it in a new class, to request data already saved in the database, and to save fresh data. The
definition of the class will be using a
ForecastDbHelper
and a
DataMapper
that will convert classes
from database to domain models. I’m still using default values as an easy way of dependency
injection:


19 Saving and requesting data from database
83
1
class ForecastDb(
2
val forecastDbHelper: ForecastDbHelper = ForecastDbHelper.instance,
3
val dataMapper: DbDataMapper = DbDataMapper()) {
4
...
5
}
Both functions will make use of the
use()
function we saw in the previous chapter. The value that
the lambda returns will be used as the result of our function. So let’s define a function that requests
a forecast based on a zip code and a date:
1
fun requestForecastByZipCode(zipCode: Long, date: Long) = forecastDbHelper.use {
2
....
3
}
Not much to explain here: we return the result of the
use
function as the result of our function.
Requesting a forecast
The first request that needs to be done is the daily forecast, because we need the list to create the
city object. Anko provides a simple request builder, so let’s take advantage of it:
1
val dailyRequest = "${DayForecastTable.CITY_ID} = ? " +
2
"AND ${DayForecastTable.DATE} >= ?"
3
4
val dailyForecast = select(DayForecastTable.NAME)
5
.whereSimple(dailyRequest, zipCode.toString(), date.toString())
6
.parseList { DayForecast(HashMap(it)) }
The first line,
dailyRequest
, is the
where
Download 1.04 Mb.

Do'stlaringiz bilan baham:
1   ...   50   51   52   53   54   55   56   57   ...   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling