如何查看我在android sqlite上输入的数据

时间:2019-02-24 04:13:23

标签: android sqlite

我刚刚在应用程序上创建了loginregister

我想看到data上的input。我在哪里可以看到register?我可以像使用datanavicat的sql一样看吗?

如果我想创建另一个函数,例如sqlyog,是否也应该将crud放在queries类中?

请告诉我我是否输入错误,我的.db文件在哪里?

1 个答案:

答案 0 :(得分:0)

  

如果我想创建另一个功能,例如crud,我应该把   sqlitehelper类中也有查询吗?

是的,你可以。

  

我可以使用navicat或sqlyog像sql一样看到它吗?

由于没有内置工具,您不能直接看到数据。

  

我想查看我刚刚在寄存器中输入的数据。我可以在哪里   看到那个数据?

对于测试,一种更简单的方法可能是在SQLiteHelper类中沿着:-

public void DisplayTableData(String table) {
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor csr = db.query(table, null, null, null, null, null, null);
    DatabaseUtils.dumpCursor(csr); //<<<<<<<<<< will dump the Cursor to the Log
    csr.close();
}
  • 根据注释,这将使用Android SDK随附的实用程序将光标转储到日志中。游标是使用 SQliteDatabase query 方法创建的,并将根据传递给该方法的参数从表中提取所有列。

在活动中使用上述内容的示例是:-

public class MainActivity extends AppCompatActivity {

    DBHelper mDBHlpr;
    Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mContext = this;

        mDBHlpr = new DBHelper(this); //<<<<<<<<<< instantiate the SQLiteHelper
        mDBHlpr.logTable(DBHelper.TBL_RETAILER); //<<<<<<<<<< invoke the logTable method

    }
}

结果,表 retailer (根据public static final String TBL_RETAILER = "retailer";)不存在,并添加了一些数据,结果将是:-

2019-02-24 16:23:00.925 31737-31737/mjt.pvcheck I/System.out: >>>>> Dumping cursor android.database.sqlite.SQLiteCursor@57a9fc5
2019-02-24 16:23:00.925 31737-31737/mjt.pvcheck I/System.out: 0 {
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out:    _id=1
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out:    retailerName=Retailer1
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out: }
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out: 1 {
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out:    _id=2
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out:    retailerName=Retailer2
2019-02-24 16:23:00.926 31737-31737/mjt.pvcheck I/System.out: }
2019-02-24 16:23:00.927 31737-31737/mjt.pvcheck I/System.out: <<<<<
  • 这表明表中有2行已定义为具有2列,即
    • _id (第一行的值为 1 ,第二行的值为 2 )和
    • retailerName (第一行的值为 Retailer1 ,第二行的值为 Reatiler2
  • 结果特定于其中使用的应用程序,您会期望得到不同的结果。

当然,这只是非常基本的数据检查/显示。

  

我的.db文件在哪里?

如果您尚未提供数据库的特定位置,则它将位于 / data / data / the_package_name / databases /

  • 其中的_package_name将与SQLiteHelper类所属的软件包相同。

例如在上面的包中是mjt.pvcheck,使用设备资源管理器将类似于:-

enter image description here

  • 第一个亮点是/ data / data中的package(mjt.pvcheck)文件夹
  • 第二个重点是数据库文件夹
  • pvcheck 是上述应用程序中的实际数据库文件(无需特定文件扩展名,但文件名和数据库名必须匹配)。
  • 带有 -shm -wal 附件的文件的存在性与数据库文件名相同,是因为SQLite数据库正在使用预写日志记录( WAL)。如果不是,则使用较旧的日志模式可能会有-journal文件。 (从Android Pie开始,默认设置已更改为WAL。)