android studio刷rom,Android Studio 之 ROM【1】, Entity,Dao,Database

本文详细介绍了如何在Android Studio中利用Room库创建数据库,包括定义Word实体类,设置主键和数据列,实现WordDao接口以进行数据的插入、更新、删除操作,以及创建WordDatabase抽象类。在MainActivity中展示了如何实例化数据库并执行CRUD操作,动态更新UI展示数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android Studio 之 ROM, Entity,DAO,DataBase

1.Entity 实体类

package com.example.roombasic;

import androidx.room.ColumnInfo;

import androidx.room.Entity;

import androidx.room.PrimaryKey;

@Entity

public class Word {

//实体类

//主键,自增长

@PrimaryKey(autoGenerate = true)

private int id;

@ColumnInfo(name="englist_word")

private String word;

@ColumnInfo(name="chinese_meaning")

private String chineseMeaning;

public Word(String word, String chineseMeaning) {

this.word = word;

this.chineseMeaning = chineseMeaning;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getWord() {

return word;

}

public void setWord(String word) {

this.word = word;

}

public String getChineseMeaning() {

return this.chineseMeaning;

}

public void setChineseMeaning(String chineseMeaning) {

this.chineseMeaning = chineseMeaning;

}

}

2.Dao  接口

package com.example.roombasic;

import androidx.room.Dao;

import androidx.room.Delete;

import androidx.room.Insert;

import androidx.room.Query;

import androidx.room.Update;

import java.util.List;

@Dao //Database access object

public interface WordDao {

@Insert

void insertWords(Word ... words); //如果只插入一条记录,用long返回值,返回id

@Update

void updateWords(Word...words);

@Delete

void deleteWords(Word...words);

@Query("Delete From WORD")

void deleteAllWords();

@Query("SELECT * FROM WORD ORDER BY ID DESC")

List getAllWords();

}

3.Database 抽象类

package com.example.roombasic;

import androidx.room.Database;

import androidx.room.RoomDatabase;

@Database(entities = {Word.class},version = 1,exportSchema = false) //如果有多个实体,再加上逗号后加实体.Class,这里版本比较重要,每次更新都要改变

public abstract class WordDatabase extends RoomDatabase {

//抽象类

public abstract WordDao getWrodDao();

}

4.MainActity 类

package com.example.roombasic;

import android.os.Bundle;

import android.view.View;

import android.widget.Button;

import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import androidx.room.Room;

import java.util.List;

public class MainActivity extends AppCompatActivity {

WordDatabase wordDatabase;

WordDao wordDao;

Button buttonInsert,buttonUpdate,buttonClear,buttonDelete;

TextView textView;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

wordDatabase = Room.databaseBuilder(this,WordDatabase.class,"word_database").allowMainThreadQueries().build(); //allowMainThreadQueries() 强制允许在主线程运行

wordDao = wordDatabase.getWrodDao();

textView = findViewById(R.id.textView);

buttonInsert = findViewById(R.id.buttonInsert);

buttonUpdate = findViewById(R.id.buttonUpdate);

buttonClear = findViewById(R.id.buttonClear);

buttonDelete = findViewById(R.id.buttonDelete);

buttonInsert.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Word word1 = new Word("Hello","你好");

Word word2 = new Word("World","世界");

wordDao.insertWords(word1,word2);

updateView();

}

});

buttonUpdate.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Word word = new Word("English","英语");

word.setId(23); //更新是用主键来更新的

wordDao.updateWords(word);

updateView();

}

});

//删除所有的记录

buttonClear.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

wordDao.deleteAllWords();

updateView();

}

});

buttonDelete.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

Word word = new Word("English","英语");

word.setId(23); //删除也是用主键来更新的

wordDao.deleteWords(word);

updateView();

}

});

}

void updateView(){

List list = wordDao.getAllWords();

String text="";

textView.setText(text); //先将 textView 清空

for(int i=0;i

Word word = list.get(i);

text += word.getId() + ":" + word.getWord() + "=" + word.getChineseMeaning() + "

";

textView.setText(text);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值