Room用法

1.疑问

为什么清空了 数据库uid值还是自动往上加,而不是从0开始计数

 

 

1.User.java

package com.example.myapplication22;


import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;

@Entity
public class User {
    @PrimaryKey(autoGenerate = true)
    public int uid;

    @ColumnInfo(name = "id")
    public String id;


    @ColumnInfo(name = "first_name")
    public String firstName;

    @ColumnInfo(name = "last_name")
    public String lastName;

    // Getters and setters are ignored for brevity,
    // but they're required for Room to work.


//    public User(int uid, String firstName, String lastName) {
//        this.uid = uid;
//        this.firstName = firstName;
//        this.lastName = lastName;
//    }


    public User(String id, String firstName, String lastName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
    }
}

2.UserDao

package com.example.myapplication22;


import androidx.room.Dao;
import androidx.room.Delete;
import androidx.room.Insert;
import androidx.room.Query;

import java.util.List;

@Dao
public interface UserDao {
    @Query("SELECT * FROM user")
    List<User> getAll();


    @Query("SELECT * FROM user WHERE uid = (:uid)")
    List<User> findByUId(int uid);

    @Query("SELECT * FROM user WHERE id = (:id)")
    List<User> findById(String id);

    @Query("SELECT * FROM user WHERE uid IN (:userIds)")
    List<User> loadAllByIds(int[] userIds);

    @Query("SELECT * FROM user WHERE first_name LIKE :first AND "
            + "last_name LIKE :last LIMIT 1")
    User findByName(String first, String last);

    @Insert
    void insertSome(User... users);

    @Insert
    void insert(User users);

    @Insert
    void insertAll(List<User> users);

    @Delete
    void delete(User user);


    @Query("DELETE FROM user")
    void deleteAll();

}

3. AppDatebase.java

package com.example.myapplication22;

import android.content.Context;

import androidx.room.Database;
import androidx.room.Room;
import androidx.room.RoomDatabase;


//RoomDatabase@Database(entities = {User.class}, version = 1,exportSchema = false)
//public abstract class AppDatabase extends RoomDatabase {
//    public abstract UserDao userDao();
//
//}

@Database(entities = { User.class }, version = 1,exportSchema = false)
public abstract class AppDatabase extends RoomDatabase {

    private static final String DB_NAME = "UserDatabase.db";
    private static volatile AppDatabase instance;

    static synchronized AppDatabase getInstance(Context context) {
        if (instance == null) {
            instance = create(context);
        }
        return instance;
    }

    private static AppDatabase create(final Context context) {
        return Room.databaseBuilder(
                context,
                AppDatabase.class,
                DB_NAME).build();
    }

    public abstract UserDao getUserDao();
}

4.Mainativity.java 里调

package com.example.myapplication22;

import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.res.AssetManager;
import android.os.Bundle;

import com.alibaba.fastjson.JSON;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.os.Environment;
import android.os.IBinder;
import android.os.RemoteException;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;

import com.iov.speech.IMyAidlInterface;

public class MainActivity extends AppCompatActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        AppDatabase.getInstance(MainActivity.this);

       


        Button startService = (Button) findViewById(R.id.start_service);
        Button startService1 = (Button) findViewById(R.id.start_service1);
        Button startService2 = (Button) findViewById(R.id.start_service2);
        Button startService3 = (Button) findViewById(R.id.start_service3);
        startService.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                new Thread(new Runnable() {
                    @Override
                    public void run() {

                        AppDatabase.getInstance(MainActivity.this).getUserDao().deleteAll();
                        User user1 = new User("1","jack", "mayun");
                        AppDatabase.getInstance(MainActivity.this).getUserDao().insert(user1);

                        User user2 = new User("2","tony", "mahuateng");
                        AppDatabase.getInstance(MainActivity.this).getUserDao().insert(user2);

                        User user3 = new User("3","mm", "mmmmm");
//                        AppDatabase.getInstance(MainActivity.this).getUserDao().insert(user3);


                        User user4 = new User("4","nn", "nnnnnnn");
//                        AppDatabase.getInstance(MainActivity.this).getUserDao().insert(user4);


                        User user5 = new User("5","sss", "ssssssss");
                        AppDatabase.getInstance(MainActivity.this).getUserDao().insertSome(user3,user4,user5);

                        List<User> list =
                                AppDatabase.getInstance(MainActivity.this).getUserDao().getAll();
                        for (User user : list) {
                            Log.d("MyService", "user uid =====" + user.uid);
                            Log.d("MyService", "user id =====" + user.id);
                            Log.d("MyService", "user firstName =====" + user.firstName);
                            Log.d("MyService", "user lastName =====" + user.lastName);
                        }


                        List<User> userquery = AppDatabase.getInstance(MainActivity.this).getUserDao().findById("3");

                        for (User user : userquery) {
                            Log.d("MyService", "user id=3 uid =====" + user.uid);
                            Log.d("MyService", "user id=3 =====" + user.id);
                            Log.d("MyService", "user id=3 firstName =====" + user.firstName);
                            Log.d("MyService", "user id=3 lastName =====" + user.lastName);
                        }
                        int[] array = {1,2,3};
                        List<User> loadAllByIds =  AppDatabase.getInstance(MainActivity.this).getUserDao().loadAllByIds(array);

                        for (User user : loadAllByIds) {
                            Log.d("MyService", "loadAllByIds user id=====" + user.uid);
                            Log.d("MyService", "user id =====" + user.id);
                            Log.d("MyService", "loadAllByIds user firstName =====" + user.firstName);
                            Log.d("MyService", "loadAllByIds user lastName =====" + user.lastName);
                        }
                    }
                }
                ).start();
            }
        });

       


        startService1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {

                        AppDatabase.getInstance(MainActivity.this).getUserDao().deleteAll();
                        User user1 = new User("1","11", "one");
                        AppDatabase.getInstance(MainActivity.this).getUserDao().insert(user1);

                        User user2 = new User("2","22", "two");
                        AppDatabase.getInstance(MainActivity.this).getUserDao().insert(user2);

                        User user3 = new User("3","33", "three");


                        User user4 = new User("4","44", "fourth");


                        User user5 = new User("5","55", "fiveth");
                        AppDatabase.getInstance(MainActivity.this).getUserDao().insertSome(user3,user4,user5);

                        List<User> list =
                                AppDatabase.getInstance(MainActivity.this).getUserDao().getAll();
                        Log.d("MyService", "startService1  =======================");
                        for (User user : list) {
                            Log.d("MyService", "=======================");
                            Log.d("MyService", "user uid =====" + user.uid);
                            Log.d("MyService", "user id =====" + user.id);
                            Log.d("MyService", "user firstName =====" + user.firstName);
                            Log.d("MyService", "user lastName =====" + user.lastName);
                        }

                        List<User> userquery = AppDatabase.getInstance(MainActivity.this).getUserDao().findById("3");

                        for (User user : userquery) {
                            Log.d("MyService", "user id=3 uid =====" + user.uid);
                            Log.d("MyService", "user id=3 =====" + user.id);
                            Log.d("MyService", "user id=3 firstName =====" + user.firstName);
                            Log.d("MyService", "user id=3 lastName =====" + user.lastName);
                        }


                    }
                }
                ).start();
            }

        });





}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值