基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper…

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

标准的SQL语句分为三类:数据定义、数据操纵和数据控制,但不同的数据库往往有自己的实现。

SQLite是一种小巧的嵌入式数据库,由于它属于轻型数据库,不涉及复杂的数据控制操作,因此App开发只用到数据定义和数据操纵两类SQL。

SQLite的SQL语法与通用的SQL语法略有不同。

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

SQLiteDatabase是SQLite的数据库管理类,它提供了若干操作数据表的API,

常用的方法有3类:

  1. 管理类,用于数据库层面的操作。

openDatabase:打开指定路径的数据库。isOpen:判断数据库是否已打开。close:关闭数据库。getVersion:获取数据库的版本号。setVersion:设置数据库的版本号。

  1. 事务类,用于事务层面的操作。

beginTransaction:开始事务。setTransactionSuccessful:设置事务的成功标志。endTransaction:结束事务。

  1. 数据处理类,用于数据表层面的操作。

execSQL:执行拼接好的SQL控制语句。delete:删除符合条件的记录。update:更新符合条件的记录。insert:插入一条记录。query:执行查询操作,返回结果集的游标。rawQuery:执行拼接好的SQL查询语句,返回结果集的游标。

示例:

页面布局:

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

代码:

package com.example.myapplication;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class DatabaseActivity extends AppCompatActivity implements View.OnClickListener
{
    private TextView tv_database;
    private String mDatabaseName;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_database);

        tv_database = findViewById(R.id.tv_database);

        findViewById(R.id.btn_database_create).setOnClickListener(this);
        findViewById(R.id.btn_database_delete).setOnClickListener(this);

        // 生成一个测试数据库的完整路径
        mDatabaseName = getFilesDir() + "/test.db";
    }

    @Override
    public void onClick(View v)
    {
        if (v.getId() == R.id.btn_database_create)
        {
            // 创建或打开数据库。数据库如果不存在就创建它,如果存在就打开它
            SQLiteDatabase db = openOrCreateDatabase(mDatabaseName, Context.MODE_PRIVATE, null);

            String desc = String.format("数据库%s创建%s", db.getPath(), (db!=null)?"成功":"失败");

            tv_database.setText(desc);

        } else if (v.getId() == R.id.btn_database_delete)
        {
            boolean result = deleteDatabase(mDatabaseName); // 删除数据库

            String desc = String.format("数据库%s删除%s", mDatabaseName, result?"成功":"失败");

            tv_database.setText(desc);
        }
    }
}

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

=========================================================================================================================

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

SQLiteOpenHelper是Android提供的数据库辅助工具,用于指导开发者进行SQLite的合理使用。

SQLiteOpenHelper的具体使用步骤如下:

(1)新建一个继承自SQLiteOpenHelper的数据库操作类,提示重写onCreate和onUpgrade两个方法。

(2)封装保证数据库安全的必要方法,包括以下三种。

获取单例对象:确保App运行时数据库只被打开一次,避免重复打开引起错误。

打开数据库连接:读连接可调用SQLiteOpenHelper的getReadableDatabase方法获得,写连接可调用getWritableDatabase获得。

关闭数据库连接:数据库操作完了,调用SQLiteDatabase对象的close方法关闭连接。

(3)提供对表记录进行增加、删除、修改、查询的操作方法。

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

布局:

写:

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

写,代码:

package com.example.myapplication;

import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import androidx.appcompat.app.AppCompatActivity;
import com.example.myapplication.bean.UserInfo;
import com.example.myapplication.database.UserDBHelper;

public class SQLiteWriteActivity extends AppCompatActivity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener
{
    private UserDBHelper mHelper; // 声明一个用户数据库帮助器的对象
    private EditText et_name;
    private EditText et_age;
    private EditText et_height;
    private EditText et_weight;
    private boolean isMarried = false;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqlite_write);

        et_name = findViewById(R.id.et_name);
        et_age = findViewById(R.id.et_age);
        et_height = findViewById(R.id.et_height);
        et_weight = findViewById(R.id.et_weight);

        CheckBox ck_married = findViewById(R.id.ck_married);

        ck_married.setOnCheckedChangeListener(this);
        findViewById(R.id.btn_save).setOnClickListener(this);
    }

    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        isMarried = isChecked;
    }

    @Override
    protected void onStart()
    {
        super.onStart();

        // 获得数据库帮助器的实例
        mHelper = UserDBHelper.getInstance(this, 1);
        mHelper.openWriteLink(); // 打开数据库帮助器的写连接
    }

    @Override
    protected void onStop()
    {
        super.onStop();

        mHelper.closeLink(); // 关闭数据库连接
    }

    @Override
    public void onClick(View v)
    {
        if (v.getId() == R.id.btn_save)
        {
            String name = et_name.getText().toString();
            String age = et_age.getText().toString();
            String height = et_height.getText().toString();
            String weight = et_weight.getText().toString();

            if (TextUtils.isEmpty(name))
            {
                ToastUtil.show(this, "请先填写姓名");
                return;
            }
            else if (TextUtils.isEmpty(age))
            {
                ToastUtil.show(this, "请先填写年龄");
                return;
            }
            else if (TextUtils.isEmpty(height))
            {
                ToastUtil.show(this, "请先填写身高");
                return;
            }
            else if (TextUtils.isEmpty(weight))
            {
                ToastUtil.show(this, "请先填写体重");
                return;
            }

            // 以下声明一个用户信息对象,并填写它的各字段值
            UserInfo info = new UserInfo();

            info.name = name;
            info.age = Integer.parseInt(age);
            info.height = Long.parseLong(height);
            info.weight = Float.parseFloat(weight);
            info.married = isMarried;
            info.update_time = DateUtil.getNowDateTime("yyyy-MM-dd HH:mm:ss");

            mHelper.insert(info);    // 执行数据库帮助器的插入操作

            ToastUtil.show(this, "数据已写入SQLite数据库");
        }
    }

}

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

UserInfo:

package com.example.myapplication.bean;

//用户信息
public class UserInfo
{
    public long rowid; // 行号
    public int xuhao; // 序号
    public String name; // 姓名
    public int age; // 年龄
    public long height; // 身高
    public float weight; // 体重
    public boolean married; // 婚否
    public String update_time; // 更新时间
    public String phone; // 手机号
    public String password; // 密码

    public UserInfo()
    {
        rowid = 0L;
        xuhao = 0;
        name = "";
        age = 0;
        height = 0L;
        weight = 0.0f;
        married = false;
        update_time = "";
        phone = "";
        password = "";
    }
}

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...
UserDBHelper
package com.example.myapplication.database;

import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.example.myapplication.bean.UserInfo;
import java.util.ArrayList;
import java.util.List;

@SuppressLint("DefaultLocale")
public class UserDBHelper extends SQLiteOpenHelper
{
    private static final String TAG = "UserDBHelper";
    private static final String DB_NAME = "user.db"; // 数据库的名称
    private static final int DB_VERSION = 1; // 数据库的版本号
    private static UserDBHelper mHelper = null; // 数据库帮助器的实例
    private SQLiteDatabase mDB = null; // 数据库的实例
    public static final String TABLE_NAME = "user_info"; // 表的名称

    private UserDBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
    }

    private UserDBHelper(Context context, int version) {
        super(context, DB_NAME, null, version);
    }

    // 利用单例模式获取数据库帮助器的唯一实例
    public static UserDBHelper getInstance(Context context, int version)
    {
        if (version > 0 && mHelper == null)
        {
            mHelper = new UserDBHelper(context, version);
        }
        else if (mHelper == null)
        {
            mHelper = new UserDBHelper(context);
        }

        return mHelper;
    }

    // 打开数据库的读连接
    public SQLiteDatabase openReadLink()
    {
        if (mDB == null || !mDB.isOpen())
        {
            mDB = mHelper.getReadableDatabase();
        }
        return mDB;
    }

    // 打开数据库的写连接
    public SQLiteDatabase openWriteLink()
    {
        if (mDB == null || !mDB.isOpen())
        {
            mDB = mHelper.getWritableDatabase();
        }
        return mDB;
    }

    // 关闭数据库连接
    public void closeLink()
    {
        if (mDB != null && mDB.isOpen())
        {
            mDB.close();
            mDB = null;
        }
    }

    // 创建数据库,执行建表语句
    public void onCreate(SQLiteDatabase db)
    {
        Log.d(TAG, "onCreate");
        String drop_sql = "DROP TABLE IF EXISTS " + TABLE_NAME + ";";
        Log.d(TAG, "drop_sql:" + drop_sql);
        db.execSQL(drop_sql);
        String create_sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " ("
                + "_id INTEGER PRIMARY KEY  AUTOINCREMENT NOT NULL,"
                + "name VARCHAR NOT NULL," + "age INTEGER NOT NULL,"
                + "height INTEGER NOT NULL," + "weight FLOAT NOT NULL,"
                + "married INTEGER NOT NULL," + "update_time VARCHAR NOT NULL"
                //演示数据库升级时要先把下面这行注释
                + ",phone VARCHAR" + ",password VARCHAR"
                + ");";
        Log.d(TAG, "create_sql:" + create_sql);
        db.execSQL(create_sql); // 执行完整的SQL语句
    }

    // 升级数据库,执行表结构变更语句
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.d(TAG, "onUpgrade oldVersion=" + oldVersion + ", newVersion=" + newVersion);
        if (newVersion > 1) {
            //Android的ALTER命令不支持一次添加多列,只能分多次添加
            String alter_sql = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + "phone VARCHAR;";
            Log.d(TAG, "alter_sql:" + alter_sql);
            db.execSQL(alter_sql);
            alter_sql = "ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + "password VARCHAR;";
            Log.d(TAG, "alter_sql:" + alter_sql);
            db.execSQL(alter_sql); // 执行完整的SQL语句
        }
    }

    // 根据指定条件删除表记录
    public int delete(String condition) {
        // 执行删除记录动作,该语句返回删除记录的数目
        return mDB.delete(TABLE_NAME, condition, null);
    }

    // 删除该表的所有记录
    public int deleteAll() {
        // 执行删除记录动作,该语句返回删除记录的数目
        return mDB.delete(TABLE_NAME, "1=1", null);
    }

    // 往该表添加一条记录
    public long insert(UserInfo info) {
        List<userinfo> infoList = new ArrayList<userinfo>();
        infoList.add(info);
        return insert(infoList);
    }

    // &#x5F80;&#x8BE5;&#x8868;&#x6DFB;&#x52A0;&#x591A;&#x6761;&#x8BB0;&#x5F55;
    public long insert(List<userinfo> infoList)
    {
        long result = -1;

        for (int i = 0; i < infoList.size(); i++)
        {
            UserInfo info = infoList.get(i);
            List<userinfo> tempList = new ArrayList<userinfo>();
            // &#x5982;&#x679C;&#x5B58;&#x5728;&#x540C;&#x540D;&#x8BB0;&#x5F55;&#xFF0C;&#x5219;&#x66F4;&#x65B0;&#x8BB0;&#x5F55;
            // &#x6CE8;&#x610F;&#x6761;&#x4EF6;&#x8BED;&#x53E5;&#x7684;&#x7B49;&#x53F7;&#x540E;&#x9762;&#x8981;&#x7528;&#x5355;&#x5F15;&#x53F7;&#x62EC;&#x8D77;&#x6765;
            if (info.name != null && info.name.length() > 0)
            {
                String condition = String.format("name='%s'", info.name);
                tempList = query(condition);

                if (tempList.size() > 0)
                {
                    update(info, condition);
                    result = tempList.get(0).rowid;
                    continue;
                }
            }

            // &#x5982;&#x679C;&#x5B58;&#x5728;&#x540C;&#x6837;&#x7684;&#x624B;&#x673A;&#x53F7;&#x7801;&#xFF0C;&#x5219;&#x66F4;&#x65B0;&#x8BB0;&#x5F55;
            if (info.phone != null && info.phone.length() > 0)
            {
                String condition = String.format("phone='%s'", info.phone);
                tempList = query(condition);

                if (tempList.size() > 0)
                {
                    update(info, condition);
                    result = tempList.get(0).rowid;
                    continue;
                }
            }

            // &#x4E0D;&#x5B58;&#x5728;&#x552F;&#x4E00;&#x6027;&#x91CD;&#x590D;&#x7684;&#x8BB0;&#x5F55;&#xFF0C;&#x5219;&#x63D2;&#x5165;&#x65B0;&#x8BB0;&#x5F55;
            ContentValues cv = new ContentValues();
            cv.put("name", info.name);
            cv.put("age", info.age);
            cv.put("height", info.height);
            cv.put("weight", info.weight);
            cv.put("married", info.married);
            cv.put("update_time", info.update_time);
            cv.put("phone", info.phone);
            cv.put("password", info.password);

            // &#x6267;&#x884C;&#x63D2;&#x5165;&#x8BB0;&#x5F55;&#x52A8;&#x4F5C;&#xFF0C;&#x8BE5;&#x8BED;&#x53E5;&#x8FD4;&#x56DE;&#x63D2;&#x5165;&#x8BB0;&#x5F55;&#x7684;&#x884C;&#x53F7;
            result = mDB.insert(TABLE_NAME, "", cv);

            if (result == -1) { // &#x6DFB;&#x52A0;&#x6210;&#x529F;&#x5219;&#x8FD4;&#x56DE;&#x884C;&#x53F7;&#xFF0C;&#x6DFB;&#x52A0;&#x5931;&#x8D25;&#x5219;&#x8FD4;&#x56DE;-1
                return result;
            }
        }

        return result;
    }

    // &#x6839;&#x636E;&#x6761;&#x4EF6;&#x66F4;&#x65B0;&#x6307;&#x5B9A;&#x7684;&#x8868;&#x8BB0;&#x5F55;
    public int update(UserInfo info, String condition)
    {
        ContentValues cv = new ContentValues();

        cv.put("name", info.name);
        cv.put("age", info.age);
        cv.put("height", info.height);
        cv.put("weight", info.weight);
        cv.put("married", info.married);
        cv.put("update_time", info.update_time);
        cv.put("phone", info.phone);
        cv.put("password", info.password);
        // &#x6267;&#x884C;&#x66F4;&#x65B0;&#x8BB0;&#x5F55;&#x52A8;&#x4F5C;&#xFF0C;&#x8BE5;&#x8BED;&#x53E5;&#x8FD4;&#x56DE;&#x66F4;&#x65B0;&#x7684;&#x8BB0;&#x5F55;&#x6570;&#x91CF;
        return mDB.update(TABLE_NAME, cv, condition, null);
    }

    public int update(UserInfo info)
    {
        // &#x6267;&#x884C;&#x66F4;&#x65B0;&#x8BB0;&#x5F55;&#x52A8;&#x4F5C;&#xFF0C;&#x8BE5;&#x8BED;&#x53E5;&#x8FD4;&#x56DE;&#x66F4;&#x65B0;&#x7684;&#x8BB0;&#x5F55;&#x6570;&#x91CF;
        return update(info, "rowid=" + info.rowid);
    }

    // &#x6839;&#x636E;&#x6307;&#x5B9A;&#x6761;&#x4EF6;&#x67E5;&#x8BE2;&#x8BB0;&#x5F55;&#xFF0C;&#x5E76;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x6570;&#x636E;&#x5217;&#x8868;
    public List<userinfo> query(String condition)
    {
        String sql = String.format("select rowid,_id,name,age,height,weight,married,update_time," +
                "phone,password from %s where %s;", TABLE_NAME, condition);
        Log.d(TAG, "query sql: " + sql);
        List<userinfo> infoList = new ArrayList<userinfo>();
        // &#x6267;&#x884C;&#x8BB0;&#x5F55;&#x67E5;&#x8BE2;&#x52A8;&#x4F5C;&#xFF0C;&#x8BE5;&#x8BED;&#x53E5;&#x8FD4;&#x56DE;&#x7ED3;&#x679C;&#x96C6;&#x7684;&#x6E38;&#x6807;
        Cursor cursor = mDB.rawQuery(sql, null);
        // &#x5FAA;&#x73AF;&#x53D6;&#x51FA;&#x6E38;&#x6807;&#x6307;&#x5411;&#x7684;&#x6BCF;&#x6761;&#x8BB0;&#x5F55;
        while (cursor.moveToNext()) {
            UserInfo info = new UserInfo();
            info.rowid = cursor.getLong(0); // &#x53D6;&#x51FA;&#x957F;&#x6574;&#x578B;&#x6570;
            info.xuhao = cursor.getInt(1); // &#x53D6;&#x51FA;&#x6574;&#x578B;&#x6570;
            info.name = cursor.getString(2); // &#x53D6;&#x51FA;&#x5B57;&#x7B26;&#x4E32;
            info.age = cursor.getInt(3); // &#x53D6;&#x51FA;&#x6574;&#x578B;&#x6570;
            info.height = cursor.getLong(4); // &#x53D6;&#x51FA;&#x957F;&#x6574;&#x578B;&#x6570;
            info.weight = cursor.getFloat(5); // &#x53D6;&#x51FA;&#x6D6E;&#x70B9;&#x6570;
            //SQLite&#x6CA1;&#x6709;&#x5E03;&#x5C14;&#x578B;&#xFF0C;&#x7528;0&#x8868;&#x793A;false&#xFF0C;&#x7528;1&#x8868;&#x793A;true
            info.married = (cursor.getInt(6) == 0) ? false : true;
            info.update_time = cursor.getString(7); // &#x53D6;&#x51FA;&#x5B57;&#x7B26;&#x4E32;
            info.phone = cursor.getString(8); // &#x53D6;&#x51FA;&#x5B57;&#x7B26;&#x4E32;
            info.password = cursor.getString(9); // &#x53D6;&#x51FA;&#x5B57;&#x7B26;&#x4E32;
            infoList.add(info);
        }
        cursor.close(); // &#x67E5;&#x8BE2;&#x5B8C;&#x6BD5;&#xFF0C;&#x5173;&#x95ED;&#x6570;&#x636E;&#x5E93;&#x6E38;&#x6807;
        return infoList;
    }

    // &#x6839;&#x636E;&#x624B;&#x673A;&#x53F7;&#x7801;&#x67E5;&#x8BE2;&#x6307;&#x5B9A;&#x8BB0;&#x5F55;
    public UserInfo queryByPhone(String phone)
    {
        UserInfo info = null;
        List<userinfo> infoList = query(String.format("phone='%s'", phone));

        if (infoList.size() > 0) { // &#x5B58;&#x5728;&#x8BE5;&#x53F7;&#x7801;&#x7684;&#x767B;&#x5F55;&#x4FE1;&#x606F;
            info = infoList.get(0);
        }

        return info;
    }

}</userinfo></userinfo></userinfo></userinfo></userinfo></userinfo></userinfo></userinfo></userinfo>

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

读,布局:

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

读,代码:

package com.example.myapplication;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import com.example.myapplication.bean.UserInfo;
import com.example.myapplication.database.UserDBHelper;
import java.util.List;

@SuppressLint("DefaultLocale")
public class SQLiteReadActivity extends AppCompatActivity implements View.OnClickListener
{
    private UserDBHelper mHelper; // &#x58F0;&#x660E;&#x4E00;&#x4E2A;&#x7528;&#x6237;&#x6570;&#x636E;&#x5E93;&#x5E2E;&#x52A9;&#x5668;&#x7684;&#x5BF9;&#x8C61;
    private TextView tv_sqlite;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sqlite_read);

        tv_sqlite = findViewById(R.id.tv_sqlite);
        findViewById(R.id.btn_delete).setOnClickListener(this);
    }

    @Override
    protected void onStart()
    {
        super.onStart();

        // &#x83B7;&#x5F97;&#x6570;&#x636E;&#x5E93;&#x5E2E;&#x52A9;&#x5668;&#x7684;&#x5B9E;&#x4F8B;
        mHelper = UserDBHelper.getInstance(this, 1);
        mHelper.openReadLink(); // &#x6253;&#x5F00;&#x6570;&#x636E;&#x5E93;&#x5E2E;&#x52A9;&#x5668;&#x7684;&#x8BFB;&#x8FDE;&#x63A5;
        readSQLite(); // &#x8BFB;&#x53D6;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x4FDD;&#x5B58;&#x7684;&#x6240;&#x6709;&#x7528;&#x6237;&#x8BB0;&#x5F55;
    }

    @Override
    protected void onStop()
    {
        super.onStop();

        mHelper.closeLink(); // &#x5173;&#x95ED;&#x6570;&#x636E;&#x5E93;&#x8FDE;&#x63A5;
    }

    // &#x8BFB;&#x53D6;&#x6570;&#x636E;&#x5E93;&#x4E2D;&#x4FDD;&#x5B58;&#x7684;&#x6240;&#x6709;&#x7528;&#x6237;&#x8BB0;&#x5F55;
    private void readSQLite()
    {
        if (mHelper == null)
        {
            ToastUtil.show(this, "&#x6570;&#x636E;&#x5E93;&#x8FDE;&#x63A5;&#x4E3A;&#x7A7A;");
            return;
        }

        // &#x6267;&#x884C;&#x6570;&#x636E;&#x5E93;&#x5E2E;&#x52A9;&#x5668;&#x7684;&#x67E5;&#x8BE2;&#x64CD;&#x4F5C;
        List<userinfo> userList = mHelper.query("1=1");
        String desc = String.format("&#x6570;&#x636E;&#x5E93;&#x67E5;&#x8BE2;&#x5230;%d&#x6761;&#x8BB0;&#x5F55;&#xFF0C;&#x8BE6;&#x60C5;&#x5982;&#x4E0B;&#xFF1A;", userList.size());

        for (int i = 0; i < userList.size(); i++)
        {
            UserInfo info = userList.get(i);
            desc = String.format("%s\n&#x7B2C;%d&#x6761;&#x8BB0;&#x5F55;&#x4FE1;&#x606F;&#x5982;&#x4E0B;&#xFF1A;", desc, i + 1);
            desc = String.format("%s\n&#x3000;&#x59D3;&#x540D;&#x4E3A;%s", desc, info.name);
            desc = String.format("%s\n&#x3000;&#x5E74;&#x9F84;&#x4E3A;%d", desc, info.age);
            desc = String.format("%s\n&#x3000;&#x8EAB;&#x9AD8;&#x4E3A;%d", desc, info.height);
            desc = String.format("%s\n&#x3000;&#x4F53;&#x91CD;&#x4E3A;%f", desc, info.weight);
            desc = String.format("%s\n&#x3000;&#x5A5A;&#x5426;&#x4E3A;%b", desc, info.married);
            desc = String.format("%s\n&#x3000;&#x66F4;&#x65B0;&#x65F6;&#x95F4;&#x4E3A;%s", desc, info.update_time);
        }

        if (userList.size() <= 0) { desc="&#x6570;&#x636E;&#x5E93;&#x67E5;&#x8BE2;&#x5230;&#x7684;&#x8BB0;&#x5F55;&#x4E3A;&#x7A7A;" ; } tv_sqlite.settext(desc); @override public void onclick(view v) if (v.getid()="=" r.id.btn_delete) mhelper.closelink(); 关闭数据库连接 mhelper.openwritelink(); 打开数据库帮助器的写连接 mhelper.deleteall(); 删除所有记录 mhelper.openreadlink(); 打开数据库帮助器的读连接 readsqlite(); 读取数据库中保存的所有用户记录 toastutil.show(this, "已删除所有记录"); }< code>
</=></userinfo>

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

==============================================================================================================

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper...

Original: https://blog.csdn.net/m0_61442607/article/details/126439447
Author: 小白龙白龙马
Title: 基础复习——数据库SQLite——SQL的基本语法——数据库管理器SQLiteDatabase——数据库帮助器SQLiteOpenHelper…

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/817238/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球