ساختن جدول با لایبرری room با دیتا آماده

پرسیده شده
فعالیت 908 روز پیش
دیده شده 486 بار
0

سلام دوستان ، من برای راه حل گرفتن به هر کامیونیتی که می بود رجوع کردم و گفتم چرا از خود بچه های سون لرن نپرسم.

قضیه اینجوری که من برای ساخت جدول با داده های از قبل آماده به مشکل بر خوردم چون استاد در آموزشا به ما یاد داد که چجوری با داده هایی که کاربر در اینترفیس برنامه وارد میکنه یک جدول بسازیم ، اما برای موقعی که میخواهیم یک جدولی بسازیم که داده هاشو از قبل داریم باید چگونه کد بزنیم. 

 

تو این برنامه من ۳ تا کلاس دیگه اضافه کردم که یکیش همون data یا جدول هستش و دومی database و آخری dataDoa هستش مثل آموزش آخر این سر فصل. اما نمیتوستم کدی بزنم که بتونم باهاش جدولی بسازم که سه تا ستون داشته باشه که یکیش ای دی باشه که بتونم از داده ها در داخل یک الگوریتم ریاضی استفاده کنم و یک دیگریش تاریخ باشه و آخری عداد اشاری رو نگه داره ، یه چیزی مثل این : 

 

۱۳۱۶ => ۰.۰۰۴,
           ۱۳۱۷ => ۰.۰۰۴,
           ۱۳۱۸ => ۰.۰۰۴,
           ۱۳۱۹ => ۰.۰۰۴,

...

۱۴۰۰ => ۲۹۸.۷

 

من کد برنامه رو براتون قرار میدم : 

 

کد قسمت کلاس data 

@Entity(tableName = "tbl_data")
public class Data {
    @PrimaryKey(autoGenerate = true)
    private long id;
    private int year;
    private int dowry;
    
    public Data(int year, int dowry) {
        this.year = year;
        this.dowry = dowry;
    }


    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public int getYear() {
        return year;
    }

    public void setYear(int year) {
        this.year = year;
    }

    public int getDowry() {
        return dowry;
    }

    public void setDowry(int dowry) {
        this.dowry = dowry;
    }
}

کد قسمت کلاس dataDoa

@Dao
public interface DataDao {


    @Insert
    Long addTask(Data data);

    @Query("SELECT * FROM tbl_data")
    List<Data> getData();

    @Query("SELECT * FROM tbl_data WHERE year Like :query")
    List<Data> search(String query);
    
}

کد قسمت کلاس appDatabase

@Database(version = 1 , exportSchema = false , entities = {Data.class} )
public abstract class AppDatabase extends RoomDatabase   {
        private static AppDatabase appDatabase;


    public static AppDatabase getAppDatabase(Context context) {
            appDatabase= Room.databaseBuilder(context.getApplicationContext(), AppDatabase.class,
                    "db_app")
                    .allowMainThreadQueries()
                    .build();
        return appDatabase;
    }

    public abstract DataDao getDataDao();

}

کد قسمت main activity 

public class MainActivity extends AppCompatActivity {
    
    private DataDao dataDao;
    private Data data;
    
    AppDatabase appDatabase = AppDatabase.getAppDatabase(this);

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dataDao = AppDatabase.getAppDatabase(this).getDataDao();
        List<Data> dataList = dataDao.getData();

        Data data = new Data(1400, 4);
        appDatabase.getDataDao().addTask(data);
        
        //اینجا خواستم یک ستر اضافه کنم اما اپلیکیشن اجرا نشد تا بتونم توسط افزونه Moor ببنیم دیتا بیسی ساخته شد یا نه
        
    }
}
فایل پیوست

دانیال مهاجر
دانیال مهاجر

11 آبان 00