Android Studio中SQLite的使用,主要介绍sqlite插入和读出图片(ViewBinder)的操作方法

这篇具有很好参考价值的文章主要介绍了Android Studio中SQLite的使用,主要介绍sqlite插入和读出图片(ViewBinder)的操作方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

sqlite简介

本人最近在写一个小的安卓项目,开发app过程中用到了安卓自带的sqlite。本文主要对sqlite图片操作进行介绍,其他存入文本之类的操作和普通数据库一样,众所周知,sqlite是一款轻型的数据库,以下先简单介绍一下sqlite,为后续做铺垫,有了解的大佬可以跳过此部分:

 

SQLite是一种轻量级、嵌入式的关系型数据库管理系统,它以库的形式提供了一组编程接口,可以在各种操作系统上运行,如Windows、Linux、Mac OS等,被广泛应用于移动设备和嵌入式系统中。SQLite的数据存储在单个文件中,不需要专门的服务器进程或后台进程,它支持绝大多数的SQL语法,可以处理大部分中小型应用程序的数据存储和管理需要。

 

SQLite的优点主要有以下几个:

简单易用:SQLite非常易于安装和使用,只需要引入单个库文件,便可以开始使用它提供的API进行开发。

小巧灵活:由于SQLite的设计目标定位为轻量级的数据库管理系统,因此它的库文件非常小巧,适合在嵌入式设备和移动终端中使用。

零配置:SQLite不需要任何专门的配置或安装过程,用户只需要将其API引入到程序中即可使用,大大简化了部署和维护的工作。

兼容性强:SQLite支持大部分标准的SQL语法,同时可以通过插件或扩展使用自定义的函数和AGGREGATE聚合函数。

 

SQLite的缺点也是比较明显的:

不适合大规模数据存储:由于SQLite的数据存储在单个文件中,因此不适合处理大规模数据存储的需求,处理大量数据的查询和更新操作性能可能较差。

难以扩展:SQLite的特性和限制都固定在库文件中,因此很难对其进行重构或扩展,无法满足高度定制化需求。

 

总的来说,SQLite是一种非常轻量级的数据库管理系统,在小型应用开发及移动端开发中十分适合,但在处理大规模数据存储及高并发操作的应用场景下效果不佳。

 

插入图片

进入正题,在使用sqlite的过程中,我遇到了插入图片失败的问题,查了不少资料,才知道sqlite不能直接存入.jpg还有.png之类的文件,需要以二进制的形式存储在sqlite中,这也是为什么上面说的sqlite不适合大规模数据存储,是一个轻量级数据库。我用下面代码来进一步说明

 

要用到的方法以及部分名词说明:

 

Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。

BitmapFactory.decodeResource(?,?)这个带两个参数的方法:第一个参数是包含你要加载的位图资源文件的对象(一般写成 getResources()就ok了);第二个时你需要加载的位图资源的Id。

位图介绍:位图(Bitmap)格式其实并不能说是一种很常见的格式(从我们日常的使用频率上来讲,远不如 .jpg .png .gif 等),因为其数据没有经过压缩,或最多只采用行程长度编码(RLE,run-length encoding)来进行轻度的无损数据压缩

这是一个写好的调用语句和方法,insertdb()是写好的方法,可以稍加修改后放入你的Activity页面或fragment页面,调用语句如图。

//你的图片在andriod studio中是存在R.drawble中的,并且是int型的
//存入数据库的id是自己定义数据库时设计好的,可以参考我的数据库代码
 
insertdb( R.drawable.你的图片名,存入数据库的id);
 
//s指你的图片资源,int型,即R.drawable.你的图片名
private void insertdb(int s,int id){
 
        //把你的图片资源转化成位图
        Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), s);
 
        //Mysql是自己写的数据库类,需要自己编写,下面两句话是实例化一个sqlite数据库对象
        Mysql mySqlLite = new Mysql(this);
        SQLiteDatabase database = mySqlLite.getReadableDatabase();
        
        //设置一个size大小,用来压缩图片文件
        int size = bitmap.getWidth() * bitmap.getHeight() * 4;
 
        //ByteArrayOutputStream(字节数组输出流)对byte类型数据进行写入的类,属于内存操作流
        ByteArrayOutputStream baos= new ByteArrayOutputStream(size);
 
        //压缩位图bitmap
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
 
        //定义一个byte类型的数组bytedata存储位图字节流转化成的byte数组
        byte[] bytedata = baos.toByteArray();
 
        //sql语句是根据自己需求写的,不要照抄
        database.execSQL("update 你的表名 set image=? where _id=?",new Object[] {bytedata,id});
    }
//MySQL.java
package 你的包名; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Mysql extends SQLiteOpenHelper { private static final String DB_NAME="INFORM.db"; private static final int DB_VERSION=1; public Mysql(Context context){ super(context,DB_NAME,null,DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL( "CREATE TABLE INFORMATION(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," +"NAME TEXT," +"TITLE TEXT," +"image blob," +"TEXTS TEXT);" ); insertTest(db, "程序员", "程序员.exe无响应","祝你有美好的一天"); insertTest(db, "程序员", "已停止运行","下辈子再也不用sqlite了"); @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } public void insertTest(SQLiteDatabase db,String name,String title,String texts){ ContentValues value=new ContentValues(); value.put("NAME",name); value.put("TITLE",title); value.put("TEXTS",texts); db.insert("INFORMTION",null,value); } }

 

读取图片

已经往数据库插入图片了,现在可以读取图片了,这里我用的是游标

package 你的包名;
 
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.example.garden.database.Mydb;
 
public class SearchResult extends AppCompatActivity implements AdapterView.OnItemClickListener {
 
    //定义游标
    private Cursor cursor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_result);
 
        Intent rit = getIntent();
        String text = rit.getStringExtra("key");
 
        ListView listview=findViewById(R.id.listview);
 
        //帮助器和管理器两个老朋友了,实例化数据库对象
        SQLiteOpenHelper helper=new Mydb(this);
        SQLiteDatabase db=helper.getWritableDatabase();
 
        //游标读取数据库
        cursor=db.rawQuery("select * from KNOW where name like '%"+text+"%'",null);
        cursor.moveToFirst();
 
        //数据库的简单游标适配器,简单来说就是往模板填充内容的一个桥梁
        SimpleCursorAdapter mAdapter=new SimpleCursorAdapter(this,R.layout.item_list,
                cursor,new String[]{"NAME","image","TITLE"},new int[]{R.id.iv1,R.id.iv2,R.id.iv3},0);//自己的xml组件名R.id.iv1,R.id.iv2,R.id.iv3与数据库字段名"NAME","image","TITLE"对应,更多用法自己查
 
        //仅仅是上面的简单游标适配器是不能读取图片的,重点来了,此处用到了ViewBinder
        SimpleCursorAdapter.ViewBinder binder=new SimpleCursorAdapter.ViewBinder() {
            @Override
            public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
 
        //判断是否是ImageView,这个判断非常关键,详细可以按ctr去查找ViewBinder,就去文档看,不要找其他资料,如果想真的搞懂一定要看!
                if (view instanceof ImageView) {
                    ImageView imageView = (ImageView) view;
 
           imageView.setImageBitmap(readImageFromDb(cursor.getString(cursor.getColumnIndex("_id"))));//为imageView配置id所对应的图片   
                    return true;
                }
                return false;
            }
        };
 
        //配置ViewBinder
        mAdapter.setViewBinder(binder);
        //配置适配器
        listview.setAdapter(mAdapter);
        //点击监听器
        listview.setOnItemClickListener(this);
 
   }
 
    //
    @SuppressLint("Range")
    private Bitmap readImage(String id) {
 
    //至于为什么又要实例化,是因为sqlite不能同时使用,术语不专业,总之要重新实例化,不然会报错
        Mysql mySqlLite2 = new Mysql(this);
        SQLiteDatabase database2 = mySqlLite2.getReadableDatabase();
 
        Bitmap image= null;
        byte[] bytes;
        Cursor cursor = database2.rawQuery( "SELECT * FROM INFORMATION WHERE _id = ?", new String[]{id});
        if (cursor.moveToFirst()) {
            if ((bytes = cursor.getBlob(cursor.getColumnIndex("image"))) != null) {
                image= BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
            }
        }
        cursor.close();
        return image;
    }
 
 
    //listview的点击事件
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        //此处写点击事件,我用来传值以及跳转页面
        Intent it=new Intent(this, Show.class);
        it.putExtra("ID",(int)id-1);
        startActivity(it);
        finish();
    }
}

 

 

可能会出现的问题

此处重点!我遇到的大问题目前只有一个,就是行过大导致无法读取数据库,原因是我放入的图片太大了,大概1MB左右的样子,我其他的图片大小一般是200KB到500KB左右,1MB的图片太大了,导致那个位图转化的二进制数据流太大了,数据库无法一次读取完,会导致程序直接崩溃,解决办法就是不存入太大的图片。毕竟它还只是个”孩砸“啊,sqlite是个轻量级的数据库,不要存入太大的图片

 

总结

写代码的过程中遇到了不少问题,感谢互联网各位大佬发的参考资料,由于参考了许多资料和文献,也因为当时写的太快了没有记住大佬的博客和文章,深表歉意,本项目后续完善后也会发到GitHub上面去,做一个开源小项目给大家参考,本人目前大二计科学生,希望和各位一同成长前进。文章来源地址https://www.toymoban.com/news/detail-490687.html

本人最近在写一个小的安卓项目,开发app过程中用到了安卓自带的sqlite。本文主要对sqlite图片操作进行介绍,其他存入文本之类的操作和普通数据库一样,众所周知,sqlite是一款轻型的数据库,以下先简单介绍一下sqlite,为后续做铺垫,有了解的大佬可以跳过此部分:

 

SQLite是一种轻量级、嵌入式的关系型数据库管理系统,它以库的形式提供了一组编程接口,可以在各种操作系统上运行,如Windows、Linux、Mac OS等,被广泛应用于移动设备和嵌入式系统中。SQLite的数据存储在单个文件中,不需要专门的服务器进程或后台进程,它支持绝大多数的SQL语法,可以处理大部分中小型应用程序的数据存储和管理需要。

 

SQLite的优点主要有以下几个:

简单易用:SQLite非常易于安装和使用,只需要引入单个库文件,便可以开始使用它提供的API进行开发。

小巧灵活:由于SQLite的设计目标定位为轻量级的数据库管理系统,因此它的库文件非常小巧,适合在嵌入式设备和移动终端中使用。

零配置:SQLite不需要任何专门的配置或安装过程,用户只需要将其API引入到程序中即可使用,大大简化了部署和维护的工作。

兼容性强:SQLite支持大部分标准的SQL语法,同时可以通过插件或扩展使用自定义的函数和AGGREGATE聚合函数。

 

SQLite的缺点也是比较明显的:

不适合大规模数据存储:由于SQLite的数据存储在单个文件中,因此不适合处理大规模数据存储的需求,处理大量数据的查询和更新操作性能可能较差。

难以扩展:SQLite的特性和限制都固定在库文件中,因此很难对其进行重构或扩展,无法满足高度定制化需求。

 

总的来说,SQLite是一种非常轻量级的数据库管理系统,在小型应用开发及移动端开发中十分适合,但在处理大规模数据存储及高并发操作的应用场景下效果不佳。

 

插入图片

进入正题,在使用sqlite的过程中,我遇到了插入图片失败的问题,查了不少资料,才知道sqlite不能直接存入.jpg还有.png之类的文件,需要以二进制的形式存储在sqlite中,这也是为什么上面说的sqlite不适合大规模数据存储,是一个轻量级数据库。我用下面代码来进一步说明

 

要用到的方法以及部分名词说明:

 

Bitmap是Android系统中的图像处理的最重要类之一。用它可以获取图像文件信息,进行图像剪切、旋转、缩放等操作,并可以指定格式保存图像文件。

BitmapFactory.decodeResource(?,?)这个带两个参数的方法:第一个参数是包含你要加载的位图资源文件的对象(一般写成 getResources()就ok了);第二个时你需要加载的位图资源的Id。

位图介绍:位图(Bitmap)格式其实并不能说是一种很常见的格式(从我们日常的使用频率上来讲,远不如 .jpg .png .gif 等),因为其数据没有经过压缩,或最多只采用行程长度编码(RLE,run-length encoding)来进行轻度的无损数据压缩

这是一个写好的调用语句和方法,insertdb()是写好的方法,可以稍加修改后放入你的Activity页面或fragment页面,调用语句如图。

//你的图片在andriod studio中是存在R.drawble中的,并且是int型的
//存入数据库的id是自己定义数据库时设计好的,可以参考我的数据库代码
 
insertdb( R.drawable.你的图片名,存入数据库的id);
 
//s指你的图片资源,int型,即R.drawable.你的图片名
private void insertdb(int s,int id){
 
        //把你的图片资源转化成位图
        Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), s);
 
        //Mysql是自己写的数据库类,需要自己编写,下面两句话是实例化一个sqlite数据库对象
        Mysql mySqlLite = new Mysql(this);
        SQLiteDatabase database = mySqlLite.getReadableDatabase();
        
        //设置一个size大小,用来压缩图片文件
        int size = bitmap.getWidth() * bitmap.getHeight() * 4;
 
        //ByteArrayOutputStream(字节数组输出流)对byte类型数据进行写入的类,属于内存操作流
        ByteArrayOutputStream baos= new ByteArrayOutputStream(size);
 
        //压缩位图bitmap
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
 
        //定义一个byte类型的数组bytedata存储位图字节流转化成的byte数组
        byte[] bytedata = baos.toByteArray();
 
        //sql语句是根据自己需求写的,不要照抄
        database.execSQL("update 你的表名 set image=? where _id=?",new Object[] {bytedata,id});
    }
//MySQL.java
package 你的包名; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class Mysql extends SQLiteOpenHelper { private static final String DB_NAME="INFORM.db"; private static final int DB_VERSION=1; public Mysql(Context context){ super(context,DB_NAME,null,DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL( "CREATE TABLE INFORMATION(" + "_id INTEGER PRIMARY KEY AUTOINCREMENT," +"NAME TEXT," +"TITLE TEXT," +"image blob," +"TEXTS TEXT);" ); insertTest(db, "程序员", "程序员.exe无响应","祝你有美好的一天"); insertTest(db, "程序员", "已停止运行","下辈子再也不用sqlite了"); @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } public void insertTest(SQLiteDatabase db,String name,String title,String texts){ ContentValues value=new ContentValues(); value.put("NAME",name); value.put("TITLE",title); value.put("TEXTS",texts); db.insert("INFORMTION",null,value); } }

 

读取图片

已经往数据库插入图片了,现在可以读取图片了,这里我用的是游标

package 你的包名;
 
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import com.example.garden.database.Mydb;
 
public class SearchResult extends AppCompatActivity implements AdapterView.OnItemClickListener {
 
    //定义游标
    private Cursor cursor;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_search_result);
 
        Intent rit = getIntent();
        String text = rit.getStringExtra("key");
 
        ListView listview=findViewById(R.id.listview);
 
        //帮助器和管理器两个老朋友了,实例化数据库对象
        SQLiteOpenHelper helper=new Mydb(this);
        SQLiteDatabase db=helper.getWritableDatabase();
 
        //游标读取数据库
        cursor=db.rawQuery("select * from KNOW where name like '%"+text+"%'",null);
        cursor.moveToFirst();
 
        //数据库的简单游标适配器,简单来说就是往模板填充内容的一个桥梁
        SimpleCursorAdapter mAdapter=new SimpleCursorAdapter(this,R.layout.item_list,
                cursor,new String[]{"NAME","image","TITLE"},new int[]{R.id.iv1,R.id.iv2,R.id.iv3},0);//自己的xml组件名R.id.iv1,R.id.iv2,R.id.iv3与数据库字段名"NAME","image","TITLE"对应,更多用法自己查
 
        //仅仅是上面的简单游标适配器是不能读取图片的,重点来了,此处用到了ViewBinder
        SimpleCursorAdapter.ViewBinder binder=new SimpleCursorAdapter.ViewBinder() {
            @Override
            public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
 
        //判断是否是ImageView,这个判断非常关键,详细可以按ctr去查找ViewBinder,就去文档看,不要找其他资料,如果想真的搞懂一定要看!
                if (view instanceof ImageView) {
                    ImageView imageView = (ImageView) view;
 
           imageView.setImageBitmap(readImageFromDb(cursor.getString(cursor.getColumnIndex("_id"))));//为imageView配置id所对应的图片   
                    return true;
                }
                return false;
            }
        };
 
        //配置ViewBinder
        mAdapter.setViewBinder(binder);
        //配置适配器
        listview.setAdapter(mAdapter);
        //点击监听器
        listview.setOnItemClickListener(this);
 
   }
 
    //
    @SuppressLint("Range")
    private Bitmap readImage(String id) {
 
    //至于为什么又要实例化,是因为sqlite不能同时使用,术语不专业,总之要重新实例化,不然会报错
        Mysql mySqlLite2 = new Mysql(this);
        SQLiteDatabase database2 = mySqlLite2.getReadableDatabase();
 
        Bitmap image= null;
        byte[] bytes;
        Cursor cursor = database2.rawQuery( "SELECT * FROM INFORMATION WHERE _id = ?", new String[]{id});
        if (cursor.moveToFirst()) {
            if ((bytes = cursor.getBlob(cursor.getColumnIndex("image"))) != null) {
                image= BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
            }
        }
        cursor.close();
        return image;
    }
 
 
    //listview的点击事件
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        //此处写点击事件,我用来传值以及跳转页面
        Intent it=new Intent(this, Show.class);
        it.putExtra("ID",(int)id-1);
        startActivity(it);
        finish();
    }
}

 

 

可能会出现的问题

此处重点!我遇到的大问题目前只有一个,就是行过大导致无法读取数据库,原因是我放入的图片太大了,大概1MB左右的样子,我其他的图片大小一般是200KB到500KB左右,1MB的图片太大了,导致那个位图转化的二进制数据流太大了,数据库无法一次读取完,会导致程序直接崩溃,解决办法就是不存入太大的图片。毕竟它还只是个”孩砸“啊,sqlite是个轻量级的数据库,不要存入太大的图片

 

总结

写代码的过程中遇到了不少问题,感谢互联网各位大佬发的参考资料,由于参考了许多资料和文献,也因为当时写的太快了没有记住大佬的博客和文章,深表歉意,本项目后续完善后也会发到GitHub上面去,做一个开源小项目给大家参考,本人目前大二计科学生,希望和各位一同成长前进。

到了这里,关于Android Studio中SQLite的使用,主要介绍sqlite插入和读出图片(ViewBinder)的操作方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • [Android Studio]Android 数据存储--SQLite数据库存储

     🟧🟨🟩🟦🟪 Android Debug 🟧🟨🟩🟦🟪 Topic   发布安卓学习过程中遇到问题解决过程,希望我的解决方案可以对小伙伴们有帮助。 💯实战演练--基于SQLite数据库的通讯录实现数据的增删改查 1,创建程序 2,放置界面控件 3,编写界面交互代码 4, 核心方法讲解 5,数据库

    2024年02月08日
    浏览(52)
  • Android Studio 使用SQLite数据库来创建数据库+创建数据库表+更新表再次往表添加字段

    目录 一.前言 二.SQLite数据库介绍 1.什么是SQLite数据库 2.特点 3.SQLite 操作API 4.SQLite数据类型 三.SQlite数据库的使用 1.创建类继承SQLiteOPenHelper 2.创建数据库 3.创建数据库表 4.更新表添加字段 完整代码 扩展 总结 我们在使用Android进行开发的时候不可避免的要使用到数据,那么就需

    2024年02月08日
    浏览(59)
  • 【Android Studio】安卓APP期末作品记录之连接sqlite数据库以及简单的sqlite增删改查

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

    2024年02月03日
    浏览(57)
  • 使用 Python 字典向 SQLite 插入数据

    将Python字典数据插入SQLite数据库中其实有很多好处,例如使用字典的结构可以简化插入数据的代码,使其更加紧凑和易于理解。这降低了代码的复杂性,并使代码更易于维护。那么在我们日常使用中会有哪些问题呢?一起看看我是如何解决的吧。 问题背景 我正在使用 Python

    2024年03月12日
    浏览(80)
  • Android Studio初学者实例:SQLite实验:绿豆通讯录

    本次实验是使用SQLite对一个通讯录表进行简单增删改查 以下是实验效果:  首先是继承SQLiteOpenHelper的数据库自定义类 对于此类必须继承于SQLiteOpenHelper ,当new创造该类的实例的时候会执行创建数据库以及表的操作,例如本代码中数据库名为itcast,数据库表名为informatoin。db

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

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

    2024年02月03日
    浏览(86)
  • Android studio引入外部SQLite数据库,获取数据库列表数据

    准备好Android studio和一个创建管理数据库的软件,推荐SQLite Expert Professional或者Navicat Premium。这里以SQLite Expert Professional为例。 1.穿件sqlite数据库,按照自己的项目要求定义数据库和相应的数据表 1.在main目录下创建assets文件,将准备好的sqlite数据库文件放入这个目录下 解释:

    2024年02月08日
    浏览(58)
  • Android studio 连接SQLite数据库 +创建数据库+创建数据库表

    Android studio 之数据库的使用 连接创建SQLite 大家好,欢迎来到寒依。 相信看啦我的教程 当老师问你在学习Android studio 数据库使用过程中遇到什么困难,分享一下你的感悟和解决方法 的时候,你可以直接大胆的说出来: “老师我没有遇到问题,看啦寒依的教程 畅行无阻” 我

    2024年02月02日
    浏览(55)
  • SQLite 使用(针对Android)

    SQLite的注意事项: 标准的主键写法:_id。(不标准写法:id),此外,主键只能是Integer类型的。 像varchar,char等最终内部都会转变成text格式。 android里面的SQLite数据库是由底层的sqlite.c的代码来动态生成的。 官方下载地址:https://www.sqliteexpert.com/download.html 模拟器下面的db数据库

    2024年02月08日
    浏览(46)
  • Android 使用SQLite的案例详解

    sqlite是个轻量级的数据库,可用于嵌入式。有时候做本地的web开发的时候,我会把sqlite作为内置数据库,这样便于部署,直接启动应用即可。 这里主要是将android中的使用过程记录一下。主要包含,数据如何初始化,在不同的activity中如何使用,以及增删改查的实现。 继承S

    2024年02月13日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包