关于Android Studio中创建和访问数据库SQLite的基本概念

secondonsite 2018-03-01 02:27:31
我刚刚开始接触Android平台,想做一个基于Android平台的app。以下问题很基础,请耐心回复,谢谢!

在windows 7 上已经安装好了Android Studio,首先就是建一个数据库。

1. 请问Android Studio本身自带SQLite数据库还是需要自己创建?如果自己创建是在我的App项目里创建(创建类是否会每次运行App时都会创建数据库?)、专门创建一个App去创建数据库SQLite(因为一次创建数据库,以后就是打开操作了)、还是在一个数据库操作平台上创建?

以前在C#-SQL Server的编写时,事前在SQL Server数据库的操作平台上建好数据库,导入选项性和浏览性数据,然后在C#中写好访问数据库的类等。但在Android Studio中不知道怎么个概念。

2. SQLite建成以后,导入选项性和浏览性数据通过什么方式导入?

谢谢!
...全文
807 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
x443137254 2018-03-09
  • 打赏
  • 举报
回复
每个APP的数据库是相互独立的,使用前都要自己建,自己的app也可以建多个数据库,具体建的api查相关文档就可以了。别人的app的数据包括数据库你都是不能访问的,除非人家主动提供。我觉得可能是与之前你用的MySQL对比有些概念搞混了,或许你可以这样认为,每个app都装有自己的一个mysql,然后数据库要自己建,跟别人app装的mysql没有什么关系,你也访问不到,不知道这样理解可以帮到你么,我也是个初学者
__椎名真白 2018-03-04
  • 打赏
  • 举报
回复
你这是还没看呢就问了,稍稍看一下基本使用就没有这些问题了。看了这个再看litepal,新世界的大门。
secondonsite 2018-03-02
  • 打赏
  • 举报
回复
谢谢 陈年椰子。我将好好研究研究。
陈年椰子 2018-03-02
  • 打赏
  • 举报
回复
找本书看看,到实验几遍就明白了。
陈年椰子 2018-03-02
  • 打赏
  • 举报
回复
帖段代码给你参考一下 , 用来保存APP的一些设置值 HDSetupInfo.java
package com.huading.hdshop;

/**
 * Created by xie on 2017/7/18.
 */

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;

public class HDSetupInfo extends SQLiteOpenHelper {
    private final static String DATABASE_NAME = "Library";
    private final static int DATABASE_VERSION = 1;
    private final static String TABLE_NAME = "Hdsetup";
    //构造函数,创建数据库
    public HDSetupInfo(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    //建表
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME
                + "(_id INTEGER PRIMARY KEY  autoincrement,"
                + " hdkey VARCHAR(30)  NOT NULL,"
                + " hdval VARCHAR(30))";
        db.execSQL(sql);
    }


    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE IF EXISTS " + TABLE_NAME;
        db.execSQL(sql);
        onCreate(db);
    }

    //获取游标
    public Cursor select() {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_NAME, null, null, null, null, null, null);
        return cursor;
    }

    //建立设置值
    public long insert(String hdkey,String hdvalue ) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("hdkey", hdkey);
        cv.put("hdval", hdvalue);
        long row = db.insert(TABLE_NAME, null, cv);
        return row;
    }

    //查询设置值
    public Cursor query(String[] args) {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM "+TABLE_NAME+" WHERE hdkey = ?", args);
        return cursor;
    }

    //更新设置值
    public void update(String hdkey,String hdvalue) {
        SQLiteDatabase db = this.getWritableDatabase();
        String where = " hdkey = ?";
        String[] whereValue = { hdkey };
        ContentValues cv = new ContentValues();
        cv.put("hdval", hdvalue);
        db.update(TABLE_NAME, cv, where, whereValue);
    }

    //设置KEY
    public void SetKey(String hdkey,String hdvalue){
        String et=hdkey;
        String args[]=new String[]{et};
        Cursor cursor=this.query(args);
        if(cursor.getCount()>0){
            this.update(hdkey,hdvalue);
        }else{
            this.insert(hdkey,hdvalue);
        }
    }
    //读取KEY
    public String GetKey(String hdkey){
        String args[]=new String[]{hdkey};
        Cursor cursor=this.query(args);
        if(cursor.getCount()==1) {
            cursor.moveToFirst();
            return cursor.getString(2);
        }else{
            return "";
        }
    }

}
某个页面的用法 , 保存值
HDSetupInfo hd1  = new HDSetupInfo(this);
                if(checkSaveLogin.isChecked()){
                    hd1.SetKey("SaveLogin","1");
                    hd1.SetKey("SaveAccount",mu);
                }
取值
HDSetupInfo hd1  = new HDSetupInfo(this);
        String s1 = hd1.GetKey("SaveLogin");
        if(s1.equals("1")){
            String s2 = hd1.GetKey("SaveAccount");
            Set_Login_M(s1,s2);
        }
secondonsite 2018-03-01
  • 打赏
  • 举报
回复
刷新一下,尽管我提的问题很难为情。
secondonsite 2018-03-01
  • 打赏
  • 举报
回复
我还是不懂。 SQLiteHelper类是要放在哪个App里?是专门创建个App去建数据库吗?导入数据的代码同样的问题,应该写在哪里?
陈年椰子 2018-03-01
  • 打赏
  • 举报
回复
1 SQLite数据库 在模拟器 或者真机上, 数据库要自己建。 可以用 SQLiteHelper类 2 数据库操作 , 导入和读写, 可以自己写代码

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧