Android studio java 使用sqllite 数据库 并本地查看

1.创建 UserDb    进行sqlLite 连接 创建表 增删改查  进行数据处理 

package com.suntae.forklift;

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

import java.util.ArrayList;
import java.util.List;

//sqlLite 连接 数据处理
public class UserDB extends SQLiteOpenHelper {
    private static final String Db_name = "user.db";
    private static final int ver = 1;
    private static UserDB mhelp = null;
    private static SQLiteDatabase mrdb = null;
    private static SQLiteDatabase mwdb = null;


    public UserDB(Context context) {
        super(context, Db_name, null, ver);
    }

    //    数据库连接
    public static UserDB getInstance(Context context) {
        if (mhelp == null) {
            mhelp = new UserDB(context);
        }
        return mhelp;
    }

    //打开读连接
    public SQLiteDatabase openReadLink() {
        mwdb = mhelp.getReadableDatabase();
        return mwdb;

    }

    //打开写连接
    public SQLiteDatabase openWriteLink() {
        mrdb = mhelp.getWritableDatabase();
        return mrdb;
    }

    //关闭
    @Override
    public void close() {
        if (mrdb != null && mrdb.isOpen()) {
            mrdb.close();
            mrdb = null;
        }
        if (mwdb != null && mwdb.isOpen()) {
            mwdb.close();
            mwdb = null;
        }
    }

    @Override
    public void onCreate(SQLiteDatabase sqLiteDatabase) {
        String sql = "create table if not exists " + Table_name + " (_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,can_id VARCHAR,can_data VARCHAR ,time VARCHAR,tcp_ip VARCHAR)";
        sqLiteDatabase.execSQL(sql);


    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    }


    public long del(String account) {
        //删除所有
//        mwdb.delete(Table_name, "1=1", null);
        //多条件删除
//        mwdb.delete(Table_name, "name=? and age=?", new String[]{name, age});
        return mwdb.delete(Table_name, "account=?", new String[]{account});


    }

    public static long update(User user) {
       ContentValues contentValues = new ContentValues();
        contentValues.put("account", user.account);
        contentValues.put("pass", user.pass);
       contentValues.put("tbox_ip", user.tbox_ip);
        contentValues.put("tcp_ip", user.tcp_ip);
        contentValues.put("vin", user.vin);
        contentValues.put("ting", user.ting);
        contentValues.put("lock", user.lock);
       contentValues.put("start_broadcast", user.start_broadcast);
       contentValues.put("arrive_broadcast", user.arrive_broadcast);
        contentValues.put("con_broadcast", user.con_broadcast);
       contentValues.put("MusicPath", user.MusicPath);
        contentValues.put("download_ip", user.download_ip);
          contentValues.put("dian", user.dian);
        contentValues.put("shui", user.shui);
       return mwdb.update(Table_name, contentValues, "account=?", new String[]{user.account});
    }

    public long insert(User user) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("account", user.account);
        contentValues.put("pass", user.pass);
        contentValues.put("tbox_ip", user.tbox_ip);
        contentValues.put("tcp_ip", user.tcp_ip);
        contentValues.put("vin", user.vin);
        contentValues.put("ting", user.ting);
      contentValues.put("lock", user.lock);
        contentValues.put("start_broadcast", user.start_broadcast);
       contentValues.put("arrive_broadcast", user.arrive_broadcast);
       contentValues.put("con_broadcast", user.con_broadcast);
       contentValues.put("MusicPath", user.MusicPath);
        contentValues.put("download_ip", user.download_ip);
      contentValues.put("dian", user.dian);
        contentValues.put("shui", user.shui);
       return mwdb.insert(Table_name, null, contentValues);
  mwdb.insert(Ta)
   }

    public long insert(String can_id, String can_data,String time) {
        ContentValues contentValues = new ContentValues();
        contentValues.put("can_id", can_id);
        contentValues.put("can_data", can_data);
        contentValues.put("time", time);
        return mwdb.insert(Table_name, null, contentValues);
    }


//    // 开启事务
//    public int shiwu(User user) {
//        ContentValues contentValues = new ContentValues();
//        contentValues.put("account", user.account);
//        contentValues.put("pass", user.pass);
//        try {
//            mwdb.beginTransaction();
//            mwdb.insert(Table_name, null, contentValues);
//            mwdb.insert(Table_name, null, contentValues);
//            mwdb.setTransactionSuccessful();
//        } catch (Exception e) {
//            e.printStackTrace();
//        } finally {
//            mwdb.endTransaction();
//        }
//        return 1;
//    }
}

2.在 MainActivity 进行调用

   private UserDB userDB;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        userDB = userDB.getInstance(this);
        userDB.openWriteLink();
        userDB.openReadLink();
//      userDB.update();
//      userDB.insert();
}

3.查看 表里面的数据 

1.利用AS的App Inspection查看

  • sqlite数据不处于closed状态
  • 程序必须处于运行状态
  • 正确选择了对应的设备和包名
  • 项目必须出去启动状态★★★★★

2.AS插件SimpleSqliteBrower查看

1.下载SimpleSqliteBrower插件

2.点击AS右侧边栏Device File Exploer

3.按照"data/data/应用包名/database/数据库名"找到对应的数据库,双击两下查看

 

 

如果还是不会查看 请参考更详细的文章 

https://blog.youkuaiyun.com/qq_49511057/article/details/128690910

### 如何在安卓应用中使用 SQLite 实现本地数据库功能 #### 创建初始化数据库连接 为了实现 SQLite 数据库的功能,在应用程序启动时需创建一个新的 `DatabaseHelper` 类实例来管理数据库的打开、关闭以及升级操作。此帮助器类继承自 `SQLiteOpenHelper` 重写其方法。 ```java public class DatabaseHelper extends SQLiteOpenHelper { private static final String DATABASE_NAME = "example.db"; private static final int DATABASE_VERSION = 1; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // 执行建语句 db.execSQL("CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // 处理版本更新逻辑 db.execSQL("DROP TABLE IF EXISTS users"); onCreate(db); } } ``` 通过调用 `getWritableDatabase()` 方法获取可读写的数据库对象,以便后续执行 SQL 命令[^4]。 #### 插入数据记录 当需要向格内插入新纪录时,可以通过构建 `ContentValues` 对象将键值对加入其中的方式完成参数设置,之后利用 `SQLiteDatabase.insert()` 函数提交新增请求给 SQLite 引擎处理。 ```java ContentValues values = new ContentValues(); values.put("name", "John Doe"); // 调用 insert() 方法保存一条新的 user 记录 long newRowId = database.insert("users", null, values); if(newRowId != -1){ Log.d("DB Insert","成功插入了一条记录!"); }else{ Log.e("DB Insert","插入失败..."); } ``` #### 查询现有数据 对于检索已存的数据而言,则应该采用 `SQLiteDatabase.query()` 或者更简单的 `rawQuery(String sql, String[] selectionArgs)` 来指定查询条件与返回字段列等信息。这里展示了一个基本的例子: ```java Cursor cursor = database.rawQuery("SELECT * FROM users WHERE id=?",new String[]{"1"}); while(cursor.moveToNext()){ long userId = cursor.getLong(0); String userName = cursor.getString(1); System.out.println("User ID:"+userId+", Name:"+userName); } cursor.close(); ``` 以上就是关于如何在 Android 应用程序里集成 SQLite 数据库存储服务的主要步骤概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值