package com.dayu.pipirrapp.dao; import androidx.room.Dao; import androidx.room.Delete; import androidx.room.Insert; import androidx.room.OnConflictStrategy; import androidx.room.Query; import androidx.room.Update; import com.dayu.pipirrapp.bean.db.MarkerBean; import java.util.List; import io.reactivex.rxjava3.core.Completable; import io.reactivex.rxjava3.core.Single; import io.reactivex.rxjava3.core.Maybe; /** * author: zuo * Date: 2024-09-30 * Time: 14:39 * 备注:取水口 */ @Dao public interface MarkerDao { @Insert(onConflict = OnConflictStrategy.REPLACE) void insert(MarkerBean markerBean); @Insert(onConflict = OnConflictStrategy.REPLACE) Completable insertAll(List markerBeans); // 使用 Completable 进行异步插入 // @Insert(onConflict = OnConflictStrategy.REPLACE) // void insertAll(List markerBeans); // 使用 Completable 进行异步插入 @Update void update(MarkerBean markerBean); @Delete void delete(MarkerBean markerBean); @Query("DELETE FROM MarkerBean") void deleteAll(); @Query("select * from MarkerBean limit 1") MarkerBean findFirst(); @Query("select * from MarkerBean") List findAll(); @Query("select * from MarkerBean") Single> findAllToSingle(); @Query("SELECT * FROM MarkerBean") Maybe> getAll(); @Query("SELECT * FROM MarkerBean WHERE name LIKE '%' || :name || '%'") Single> findByNameLike(String name); @Query("UPDATE MarkerBean SET lng = :lng, lat = :lat WHERE id = :id") Completable updateMarkerLocation(String id, String lng, String lat); }