用安卓ROOM类库在应用目录下创建一个数据库,名称为data.db,并且在数据库内创建一张表叫country,表属性有id,name,额那么,,并且插入数据
时间: 2024-03-08 15:47:30 浏览: 11
好的,以下是使用Android ROOM库在应用目录下创建一个数据库,名称为data.db,并且在数据库内创建一张表叫country,表属性有id、name的代码示例:
1. 首先,在build.gradle文件中添加以下依赖:
```
dependencies {
def room_version = "2.3.0"
implementation "androidx.room:room-runtime:$room_version"
annotationProcessor "androidx.room:room-compiler:$room_version"
}
```
2. 创建一个实体类Country,表示国家,包含id、name两个属性:
```
@Entity(tableName = "country")
public class Country {
@PrimaryKey(autoGenerate = true)
public int id;
public String name;
}
```
3. 创建一个Dao接口CountryDao,定义对country表的操作:
```
@Dao
public interface CountryDao {
@Query("SELECT * FROM country")
List<Country> getAll();
@Insert
void insertAll(Country... countries);
}
```
4. 创建一个Database类AppDatabase,继承自RoomDatabase,用于创建和管理数据库:
```
@Database(entities = {Country.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract CountryDao countryDao();
}
```
5. 在应用程序的入口Activity中,创建并初始化AppDatabase实例:
```
public class MainActivity extends AppCompatActivity {
private AppDatabase db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
db = Room.databaseBuilder(getApplicationContext(),
AppDatabase.class, "data.db").build();
// 插入一些数据
new Thread(new Runnable() {
@Override
public void run() {
Country country1 = new Country();
country1.name = "China";
db.countryDao().insertAll(country1);
Country country2 = new Country();
country2.name = "USA";
db.countryDao().insertAll(country2);
}
}).start();
}
}
```
以上代码示例演示了如何使用Android ROOM类库在应用目录下创建一个数据库,名称为data.db,并且在数据库内创建一张表叫country,表属性有id、name,并且插入了一些数据。