Ответ
Да, работал с PostgreSQL, в основном через Room в Android. Room — это абстракция над SQLite, но принципы работы с базами данных схожи.
Пример с Room:
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Insert
fun insert(user: User)
}
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
Также знаком с SQL-запросами (JOIN, GROUP BY, индексы). Если проект требует прямого доступа к PostgreSQL, могу настроить подключение через Retrofit или другие библиотеки.
Ответ 18+ 🔞
О, слушай, про базы данных! Да, работал, конечно. В основном через эту самую Room на Android, ну ты знаешь, эта абстракция над SQLite. Принципы-то, в общем, одни и те же, как ни крути — таблицы, связи, запросы. Хуй с горы, не космонавтика.
Вот смотри, как обычно это выглядит, простейший пример. Объявляешь сущность, по-простому — таблицу:
@Entity
data class User(
@PrimaryKey val id: Int,
val name: String,
val age: Int
)
Потом этот Dao-интерфейс, где вся магия запросов и происходит. Тут можно и SELECT *, и INSERT, и что душе угодно.
@Dao
interface UserDao {
@Query("SELECT * FROM user")
fun getAll(): List<User>
@Insert
fun insert(user: User)
}
Ну и саму базу объявляешь, версию указываешь, стандартная история.
@Database(entities = [User::class], version = 1)
abstract class AppDatabase : RoomDatabase() {
abstract fun userDao(): UserDao
}
С SQL-запросами тоже на короткой ноге — JOIN, GROUP BY, про индексы в курсе, когда их впендюрить, чтобы всё не тормозило как всадник апокалипсиса. Если вдруг проект упрётся рогом и потребует прямого доступа к PostgreSQL — ёпта, без проблем. Настроим подключение через Retrofit или какую другую библиотеку, разберёмся. Не впервой, главное — задачу понять.
Видео-ответы
▶
▶
▶
▶
▶
▶
▶