1,建立数据库类

package com.example.test88;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;


import android.content.ContentValues;
import android.database.Cursor;
import android.util.Log;

import java.io.File;
import java.util.ArrayList;

public class s_userDB extends SQLiteOpenHelper {

    private static final String DB_NAME="mySQLite.db";
    private static final String TABLE_NAME="myUserDB";

    public s_userDB(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //创建数据库表
        db.execSQL("create table " + TABLE_NAME +" (id integer primary key autoincrement,userId varchar(20),userPw varchar(20),userTimes integer)");
//        db.execSQL("create table " + TABLE_NAME +" (id integer,username varchar(20),age integer)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        //更新数据库表  -- 如果不需要删除旧表,以下可不带
        if (newVersion > oldVersion) {
            // 删除表的SQL语句
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
            // 根据需要重新创建表
            onCreate(db);
        }
    }
    //-------------------------文件操作--------------------------------//
    public void loadFromArray(ArrayList<ArrayList<String>> array2){
        refreshTable();
        for(int i=0;i<array2.size();i++){
            ArrayList<String> arrayLine = array2.get(i);
            if(arrayLine.size()>1){
                String userId = arrayLine.get(0);
                String userPw = arrayLine.get(1);
                int userTimes = arrayLine.size()>2? Integer.valueOf(arrayLine.get(2)) : 0;

                insertByElement(userId,userPw,userTimes);
            }
        }
    }

    public void syncToLocal(String filePath,String regex){
        File file = new File(filePath);
        if(file.exists()){file.delete();}
        f_fileIO.createIfNotExist(filePath);
        ArrayList<ArrayList<String>> array2 = new ArrayList<>();
        array2 = queryAll();
        for(int i=0;i<array2.size();i++){
            ArrayList<String> arrayLine = array2.get(i);
            if(arrayLine.size()>1){
                String userId = arrayLine.get(0);
                String userPw = arrayLine.get(1);
                String userTimes = arrayLine.get(2);

                String userAccount = "\n" + userId + regex + userPw + regex + userTimes;
                f_fileIO.writeStringAppend(filePath, userAccount, "utf-8"); // 逐条写入  可优化为一起写入
            }
        }
    }


    //-------------------------基础操作--------------------------------//
    //插入
    public void insertByArrayLine(ArrayList<String> arrayLine) {
        insertByElement(arrayLine.get(0),arrayLine.get(1),Integer.valueOf(arrayLine.get(2)));
    }
    public long insertByElement(String userId, String userPw, int userTimes){
        //得到一个可写数据库
        SQLiteDatabase db = getWritableDatabase();

        ContentValues values = new ContentValues();
        //传值准备数据
//        values.put("id",id);
        values.put("userId",userId);
        values.put("userPw",userPw);
        values.put("userTimes",userTimes);

        //把数据插入到数据库中
        //返回当前行的id,若为-1则数据插入失败
        return db.insert(TABLE_NAME,null,values);
    }
    //删除
    public int deleteById(int id){
        SQLiteDatabase db = getWritableDatabase();
        return db.delete(TABLE_NAME,"id=?",new String[]{String.valueOf(id)});
    }
    //清空表
    public void refreshTable(){
        this.onUpgrade(this.getWritableDatabase(), 1, 2);
    }
    //修改
    public void updateByUserIdByArrayLine(ArrayList<String> arrayLine) {
        updateByUserId(arrayLine.get(0),arrayLine.get(1),Integer.valueOf(arrayLine.get(2)));
    }
    public int updateByUserId(String userId,String userPw,int userTimes) {
        SQLiteDatabase db = getWritableDatabase();

        ContentValues values = new ContentValues();

        //传值准备数据
//        values.put("id",id);
        values.put("userId",userId);
        values.put("userPw",userPw);
        values.put("userTimes",userTimes);;

        return db.update(TABLE_NAME, values, "userId=?", new String[]{userId});
    }
    //查询
    public ArrayList<ArrayList<String>> queryByUserId(String userId) {
        ArrayList<ArrayList<String>> queryArray = new ArrayList<>();
        //select * from user where username = 小明 ; name = 小明
        SQLiteDatabase db = getWritableDatabase();
        Cursor cursor = db.query(TABLE_NAME,new String[]{"id","userId","userPw","userTimes"},"userId=?",new String[]{userId},null,null,null);
        //指针默认指向表头,用cursor方法指向第一行
        while (cursor.moveToNext()) {//移动到第一行
            int id1 = cursor.getInt(cursor.getColumnIndex("id"));
            String userId1 = cursor.getString(cursor.getColumnIndex("userId"));
            String userPw1 = cursor.getString(cursor.getColumnIndex("userPw"));
            int userTimes1 = cursor.getInt(cursor.getColumnIndex("userTimes"));

            ArrayList<String> queryLine = new ArrayList<>();
//            queryLine.add(String.valueOf(id1));
            queryLine.add(userId1);
            queryLine.add(userPw1);
            queryLine.add(String.valueOf(userTimes1));
            queryArray.add(queryLine);

            p_main.logData = "myUserDB: " + id1 + " " + userId1 + " " + userPw1 + " " + userTimes1 ;
            Log.i(p_main.logTitle,p_main.logData ); // 打日志

            //通过循环连续获取
        }
        return queryArray;
    }
    public ArrayList<String> queryById(int id) {
        ArrayList<String> queryLine = new ArrayList<>();
        //select * from user where username = 小明 ; name = 小明
        SQLiteDatabase db = getWritableDatabase();
        Cursor cursor = db.query(TABLE_NAME,new String[]{"id","userId","userPw","userTimes"},"id=?",new String[]{String.valueOf(id)},null,null,null);
        //指针默认指向表头,用cursor方法指向第一行
        while (cursor.moveToNext()) {//移动到第一行
            int id1 = cursor.getInt(cursor.getColumnIndex("id"));
            String userId1 = cursor.getString(cursor.getColumnIndex("userId"));
            String userPw1 = cursor.getString(cursor.getColumnIndex("userPw"));
            int userTimes1 = cursor.getInt(cursor.getColumnIndex("userTimes"));

            queryLine.add(String.valueOf(id1));
            queryLine.add(userId1);
            queryLine.add(userPw1);
            queryLine.add(String.valueOf(userTimes1));

            p_main.logData = "myUserDB: " + id1 + " " + userId1 + " " + userPw1 + " " + userTimes1 ;
            Log.i(p_main.logTitle,p_main.logData ); // 打日志
            //通过循环连续获取
        }
        return queryLine;
    }
    public ArrayList<ArrayList<String>> queryAll() {
        ArrayList<ArrayList<String>> queryArray = new ArrayList<>();
        //select * from user where username = 小明 ; name = 小明
        SQLiteDatabase db = getWritableDatabase();
        String queryCmd = "SELECT * FROM " + TABLE_NAME;
        Cursor cursor = db.rawQuery(queryCmd, null);
        //指针默认指向表头,用cursor方法指向第一行
        while (cursor.moveToNext()) {//移动到第一行
            int id1 = cursor.getInt(cursor.getColumnIndex("id"));
            String userId1 = cursor.getString(cursor.getColumnIndex("userId"));
            String userPw1 = cursor.getString(cursor.getColumnIndex("userPw"));
            int userTimes1 = cursor.getInt(cursor.getColumnIndex("userTimes"));

            ArrayList<String> queryLine = new ArrayList<>();
//            queryLine.add(String.valueOf(id1));
            queryLine.add(userId1);
            queryLine.add(userPw1);
            queryLine.add(String.valueOf(userTimes1));
            queryArray.add(queryLine);

            p_main.logData = "myUserDB: " + id1 + " " + userId1 + " " + userPw1 + " " + userTimes1 ;
            Log.i(p_main.logTitle,p_main.logData ); // 打日志

            //通过循环连续获取
        }
        return queryArray;
    }
    //-------------------------基础操作--------------------------------//

}

2,让数据库生效

implementation("org.greenrobot:eventbus:3.3.1")
p_main.s_userDB1 = new s_userDB(this,"text2",null,1);

3,使用数据库示例

p_main.s_userDB1.insertDB("小明",20);
p_main.s_userDB1.insertDB("小红",20);
p_main.s_userDB1.insertDB("小红",25);
p_main.s_userDB1.insertDB("小军",20);
p_main.s_userDB1.deleteByIdFromDB(2);
p_main.s_userDB1.updateByIdFromDB(18,"小红",18);
p_main.s_userDB1.queryByNameFromDB("小红");

p_main.s_userDB1.loadFromArray(p_page1.userDataArray2); // 刷新数据库
p_page1.userDBDataArrayLine = p_main.s_userDB1.queryByUserId(p_page1.userId).get(0); // 获取对应一条
p_page1.userTimes = Integer.valueOf(p_page1.userDBDataArrayLine.get(2)) +1; // 次数加1
p_page1.userDBDataArrayLine.set(2,String.valueOf(p_page1.userTimes)); // 更新对应一条
p_main.s_userDB1.updateByUserIdByArrayLine(p_page1.userDBDataArrayLine);// 更新数据库
p_main.s_userDB1.syncToLocal(userFilePath,p_page1.userRegex);// 同步到本地

p_main.s_userDB1.queryAll();