Android studio引入外部SQLite数据库,获取数据库列表数据

这篇具有很好参考价值的文章主要介绍了Android studio引入外部SQLite数据库,获取数据库列表数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

准备工作:

准备好Android studio和一个创建管理数据库的软件,推荐SQLite Expert Professional或者Navicat Premium。这里以SQLite Expert Professional为例。

创建外部数据库:

1.穿件sqlite数据库,按照自己的项目要求定义数据库和相应的数据表

Android studio引入外部SQLite数据库,获取数据库列表数据

导入数据库到Android studio项目中

1.在main目录下创建assets文件,将准备好的sqlite数据库文件放入这个目录下

解释:assets文件夹下的文件在应用被打包成apk时不会被压缩

Android studio引入外部SQLite数据库,获取数据库列表数据

2.在main目录下的java目录下的com.example.xxxx包内创建一个java类,用于管理数据库,如图所示的MyDatabaseHelper

Android studio引入外部SQLite数据库,获取数据库列表数据

 3.在数据库的类中完成数据库的导入

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;


public class MyDatabaseHelper {

    //导入的sqlite数据库文件名
    private final String DB_NAME = "questionCenter.db";
    private SQLiteDatabase myDatabase;
    private Context context;

    //定义类的方法
    public MyDatabaseHelper(Context context) {
        this.context = context;
    }





    // 复制和加载区域数据库中的数据
    public String CopyDBFile() throws IOException {

        // 在第一次运行应用程序时,加载数据库到data/data/当前包的名称/database/数据库名字
        //获取准确的路径,context.getPackageName()得到包名
        File dir = new File("data/data/" + context.getPackageName() + "/databases");
        //如果文件夹不存在,则创建指定的文件
        if (!dir.exists() || !dir.isDirectory()) {
            dir.mkdir();
        }
        //文件声明
        File file = new File(dir, DB_NAME);
        //输入流
        InputStream inputStream = null;
        //输出流
        OutputStream outputStream = null;
        //若不存在,通过IO流的方式,将assets目录下的数据库文件,写入到项目模拟手机中,当开启模拟 
        //器时,会将数据库文件写入到模拟手机的内存中
        if (!file.exists()) {
            try {
                //创建文件
                file.createNewFile();
                //加载文件
                inputStream = context.getClass().getClassLoader().getResourceAsStream("assets/" + DB_NAME);
                //输出到文件
                outputStream = new FileOutputStream(file);

                byte[] buffer = new byte[1024];
                int len;
                //按字节写入
                while ((len = inputStream.read(buffer)) != -1) {
                    outputStream.write(buffer, 0, len);
                }


            } catch (IOException e) {
                e.printStackTrace();

            } finally {
                //关闭资源
                if (outputStream != null) {

                    outputStream.flush();
                    outputStream.close();

                }
                if (inputStream != null) {
                    inputStream.close();
                }

            }

        }

        return file.getPath();
    }
}

4.打开自己安卓项目运行时的第一个Activity,在对应的oncreate()方法,使用数据库类中定义的数据库导入的方法,完成数据库的初始化操作

注意:不一定是在第一个Activity中,但必须是在项目使用数据库之前的那个Activity中导入数据库

 //导入数据库到创建的文件中
MyDatabaseHelper myHelper = new MyDatabaseHelper(WelcomeActivity.this);
        try {
            myHelper.CopyDBFile();
        } catch (IOException e) {
            e.printStackTrace();
        }

在如图位置:

Android studio引入外部SQLite数据库,获取数据库列表数据

5.在对应的Activity的oncreate()方法中使用如图的代码可打开数据库,进行crud操作,增删查改、获取数据库数据

Android studio引入外部SQLite数据库,获取数据库列表数据

 获取数据库数据:(使用list集合)

1.在项目里面定义一个java类,用于定义数据表对应的列名。如用户表为例:

Android studio引入外部SQLite数据库,获取数据库列表数据

 对应的用户类的代码如下:

public class UserDemo {
    //对应userInfo数据库中的数据信息
    public String username;
    public String password;
    public  String savepsd;
    public String autologin;
    public String isregister;
    public int lastscore;

}

 2.按照自己的要求获取数据表的信息数据

 //获取数据库的用户数据
    public List<UserDemo> getUsers(){
        List<UserDemo> list=new ArrayList<UserDemo>();
        //这是获取完整数据表信息的方法
        Cursor cursor = myDatabase.query("userInfo.db",null,null,null,null,null,null);
        //也可以使用Cursor对象的rawQuery方法,使用sql指定的数据
        //Cursor cursor = myDatabase.rawQuery("select * from userInfo",null);
        if(cursor.getCount()>0){
            cursor.moveToFirst();//将cursor移动到第一个光标上
            int count=cursor.getCount();
            //将cursor中的每一条记录生成一个question对象,并将该question对象添加到list中
            for(int i=0;i<count;i++){
                cursor.moveToPosition(i);
                UserDemo users =new UserDemo();
                users.username=cursor.getString(cursor.getColumnIndex("username"));
                users.lastscore=cursor.getInt(cursor.getColumnIndex("lastscoren"));
                users.password=cursor.getString(cursor.getColumnIndex("password"));
                users.autologin=cursor.getString(cursor.getColumnIndex("autologin"));
                users.savepsd=cursor.getString(cursor.getColumnIndex("savepsd"));
                users.isregister=cursor.getString(cursor.getColumnIndex("isregister"));
                list.add(users);
            }
           // System.out.println(list.get(2)); //可输出list集合的数据
        }
        return list;
    }

3.通过集合获取到数据后,可以按照自己的要求进行相应的功能实现文章来源地址https://www.toymoban.com/news/detail-473798.html

如果需要对导入的数据库进行操作,可参照外部sqlite数据库导入后对数据库进行操作https://blog.csdn.net/NXBBC/article/details/123734221?spm=1001.2014.3001.5502

到了这里,关于Android studio引入外部SQLite数据库,获取数据库列表数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Android Studio】安卓APP期末作品记录之连接sqlite数据库以及简单的sqlite增删改查

    期末作品要求使用数据库,我自己折腾了一会,又看了很多博主发的文章,终于成功了,特此记录:使用SQLiteDatabase和SQLiteOpenHelper连接已有sqlite数据库。 第一步,导入sqlite数据库 因为我已经创建好了一个sqlite数据库,所以第一步得将我的数据库导入项目中 在app — src — ma

    2024年02月03日
    浏览(52)
  • 安卓大作业:使用Android Studio开发天气预报APP(使用sqlite数据库)

    今天我来分享一下如何使用Android Studio开发一个天气预报APP。在文中,我们将使用第三方接口获取实时天气数据,并显示在APP界面上。 首先,打开Android Studio并创建一个新的项目。在创建新项目时,我们需要设置项目名称、包名和支持的最低API级别。 为了获取实时天气数据,

    2024年02月08日
    浏览(58)
  • Android Studio App开发中数据库SQLite的解析及实战使用(包括创建数据库,增删改查,记住密码等 附源码必看)

    运行有问题或需要源码请点赞关注收藏后评论区留言~~~ SQLite是一种小巧的嵌入式数据库,使用方便,开发简单,如同mysql,oracle那样,SQLite也采用SQL语句管理数据,由于它属于轻型数据库,不涉及复杂的数据控制操作,因此App开发只用到数据定义和数据操纵两类SQL。 1:数据

    2024年02月03日
    浏览(80)
  • SQLite Studio 连接 SQLite数据库

    1.1、按WIN+R,打开控制台,然后把指引到我们的SQLite的安装路径,输入D:,切换到D盘,cd 地址,切换到具体文件夹,输入“sqlite3”,启动服务 1.2、创建数据库和表  id和name是表的属性(列名),int和varchar是列名的数据类型,int表示是整型,varchar表示是字符串,长度是20,p

    2024年02月15日
    浏览(47)
  • Android 进阶 1、sqlite数据库

    在我们学会了Android的基本使用之后就需要往高处发展了,毕竟水往高处流,很多时候我们学习一门技术感觉没有收获都是因为还没到那个层次,当你一步步往上走的时候就会渐渐发现自己收获的越来越多,进步也就会越来越快了,废话不多说,回到正题; 1、认识数据库 安卓

    2024年02月10日
    浏览(43)
  • Android之SQLite数据库使用

    SQLite是Android系统集成的一个轻量级的数据库。 Android提供了 SQLiteDatabase代表一个数据库 (底层就是一个数据库文件),一旦应用程序获得了代表指定数据库的SQLiteDatabase对象,接下来可通过SQLiteDatabase对象来管理、操作数据库了。 Android为了让我们能够更加方便地管理数据库,

    2024年02月16日
    浏览(45)
  • Android开发——SQLite数据库的使用

    1、SQLite的特性 SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。 SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。

    2024年02月15日
    浏览(43)
  • Android中SQLite数据库查询详解

    SQLite在线教程网址https://www.yiibai.com/sqlite table :表名。相当于select *** from table语句中的table 。如果是多表联合查询,可以用逗号将两个表名分开。 columns :要查询出来的列名(字段),全部查询就写null。相当于 select *** from table语句中的 ***部分 。如果是查询多个参数,可以用

    2024年01月16日
    浏览(50)
  • Android中SQLite数据库增删改查/使用ListView显示数据库内容(有完整源码)

    android作业笔记 编写SQLite数据库相关操作的代码,实现下图中的功能(第一排按钮布局没有调整屏幕大小适配…不过下面那一排加了 android:layout_weight=“1”) SQLite展示 先上源码:https://gitee.com/meng-fanyang/SQLiteWork 里边有三个分支,对应这不同的写法: master主分支是写的可以说

    2024年02月09日
    浏览(43)
  • Android使用SQLite数据库实现基本的增删改查

    目录 一、创建activity_main和MainActivity界面 二、实现查询/删除功能创建activity_delete和DeleteActivity 三、实现添加功能创建activity_add和AddActivity  四、实现更新功能创建activity_update和UpdateActivity 五、创建user_data类、userInfo类和增加权限 总结 activity_main如图:  MainActivity如下 layout界面

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包