m0_74474210 2024-05-11 11:29 采纳率: 93.8%
浏览 1
已结题

Android studio连接数据库问题

Android使用MySQL数据库,需要导入他的安装包吗再添加依赖吗?没用过
我看网上说Android自带sqlite,跟着步骤,在视图里用device file explorer(我上面只有device explorer,应该是一样的吧),在创建的文件夹下找不到数据库,也没看到创建的表,
public class DbContect extends SQLiteOpenHelper { private static final int VERSION=1; private static final String DBNAME="Users.db"; // 创建数据库名叫 Users private Context mContext; public DbContect(Context context){ super(context,DBNAME,null,VERSION); mContext = context; } //创建数据库 public void onCreate(SQLiteDatabase db){ //创建密码表 pwd_tb db.execSQL("create table pwd_tb (pwd varchar(20) primary key)"); //创建收入表 user_tb db.execSQL("create table user_tb(_id integer primary key autoincrement, money decimal," + " time varchar(10),type varchar(10),handler varchar(100),mark varchar(200))"); } //数据库版本更新 public void onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion) { db.execSQL("drop table if exists pwd_tb"); db.execSQL("drop table if exists user_tb"); onCreate(db); } }
上面是创建表的这些
DbContect helper;
helper=new DbContect(MainActivity.this);
if (id==R.id.peidui){
SQLiteDatabase db=helper.getWritableDatabase();
}
这些是在mainactivity里面实现点击实现

img

img

  • 写回答

3条回答 默认 最新

  • 笑面虎 2024-05-11 11:30
    关注

    以下内容由CHATGPT及笑面虎共同生成、有用望采纳:


    【您想要解决的问题】:您提问的目的是要解决在Android Studio中使用SQLite数据库时遇到的问题。具体来说,您在尝试创建数据库和表,并在MainActivity中打开数据库进行操作时遇到了困难。

    【图片内容】:

    1. 第一张图片显示了Android Studio的Device Explorer视图,您在这里没有找到您创建的数据库和表。
    2. 第二张图片是一些快捷键和工具的列表,可能与您的问题无直接关联,但可能是您在Android Studio中使用的某些功能。

    【问题出现原因】:问题可能出现的原因有几个:

    • 您可能没有在正确的位置查找数据库文件。SQLite数据库文件是存放在应用的内部存储中的,而不是在Device Explorer中直接可见。
    • 您的代码可能没有正确执行,导致数据库和表没有被创建。
    • 您可能没有正确的权限或者没有遵循正确的步骤来访问和查看数据库文件。

    【问题解决方案】:为了解决您的问题,请按照以下步骤操作:

    1. 确保您的应用有读写外部存储的权限,因为SQLite数据库默认存储在内部存储中。
    2. 确认您的DbContect类和onCreate方法中的SQL语句是正确的。
    3. 使用getWritableDatabase()方法会自动创建数据库和表,如果它们不存在的话。
    4. 为了查看数据库和表,您可能需要使用ADB命令行工具,或者在应用的内部存储中直接浏览。

    【提供代码】:以下是您可能需要的修改后的代码示例:

    public class DbContect extends SQLiteOpenHelper {
        private static final int VERSION = 1;
        private static final String DBNAME = "Users.db";
        private Context mContext;
    
        public DbContect(Context context) {
            super(context, DBNAME, null, VERSION);
            mContext = context;
        }
    
        public void onCreate(SQLiteDatabase db) {
            db.execSQL("CREATE TABLE IF NOT EXISTS pwd_tb (pwd varchar(20) primary key)");
            db.execSQL("CREATE TABLE IF NOT EXISTS user_tb (_id integer primary key autoincrement, money decimal, time varchar(10), type varchar(10), handler varchar(100), mark varchar(200))");
        }
    
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS pwd_tb");
            db.execSQL("DROP TABLE IF EXISTS user_tb");
            onCreate(db);
        }
    }
    

    【代码运行方式】:您需要在Android Studio中运行您的应用,确保您有正确的权限,并且设备已经连接。

    【代码预期运行结果】:如果您的代码和权限设置正确,您的应用应该能够在内部存储中创建一个名为Users.db的SQLite数据库,并且包含两个表:pwd_tbuser_tb

    【推荐相关链接】:

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 无法输出helloworld
  • ¥15 高通uboot 打印ubi init err 22
  • ¥20 PDF元数据中的XMP媒体管理属性
  • ¥15 R语言中lasso回归报错
  • ¥15 网站突然不能访问了,上午还好好的
  • ¥15 有没有dl可以帮弄”我去图书馆”秒选道具和积分
  • ¥15 semrush,SEO,内嵌网站,api
  • ¥15 Stata:为什么reghdfe后的因变量没有被发现识别啊
  • ¥15 振荡电路,ADS仿真
  • ¥15 关于#c语言#的问题,请各位专家解答!