Android开发中,操作数据库是一项基本的技能,本文将介绍一个简单的增删查改的实例,帮助初学者了解数据库的相关操作。
一、环境准备
1.安装Android Studio,创建一个新项目,参考以下设置。
2.在build.gradle文件中添加以下依赖项:
```
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
// Room components
implementation "android.arch.persistence.room:runtime:1.1.1"
annotationProcessor "android.arch.persistence.room:compiler:1.1.1"
```
3.在MainActivity.java文件中定义一个空的布局文件,命名为activity_main.xml。
二、创建实体类和DAO接口
1.创建一个User类,代码如下:
```
@Entity
public class User {
@PrimaryKey(autoGenerate = true)
public int id;
@ColumnInfo(name = "name")
public String name;
@ColumnInfo(name = "age")
public int age;
@ColumnInfo(name = "email")
public String email;
}
```
2.创建一个UserDao接口,定义增删查改操作。
```
@Dao
public interface UserDao {
@Query("SELECT * FROM user")
List
@Query("SELECT * FROM user WHERE id = :id")
User getUserById(int id);
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insertUser(User... users);
@Delete()
void deleteUser(User user);
@Update
void updateUser(User user);
}
```
三、创建数据库
1.创建一个AppDatabase类,继承自RoomDatabase,定义数据库的实例。
```
@Database(entities = {User.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
public abstract UserDao userDao();
}
```
2.在MainActivity类中创建一个数据库实例,代码如下:
```
public class MainActivity extends AppCompatActivity {
private AppDatabase appDatabase;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
appDatabase = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "UserDB").build();
}
```
四、添加用户
1.在布局文件activity_main.xml中添加一个EditText和一个Button,代码如下:
```
android:id="@+id/et_name" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:layout_marginLeft="8dp" android:layout_marginTop="8dp" android:layout_marginEnd="8dp" android:layout_marginRight="8dp" android:ems="10" android:hint="Name" android:inputType="textPersonName" app:layout_constraintEnd_toStartOf="@+id/btn_add" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" />