android mysql 图片_android sqlite添加图片到数据库

sqlite图片是怎么储存的呢?其实是二进制的方式存储的

blob代表使用二进制储存 (更多类型参考:数据库简介)

在创建表的地方,VALUE_PIC代表存储图片字段,blob代表这个字段是以二进制储存的。

/*创建表语句 语句对大小写不敏感 create table 表名(字段名 类型,字段名 类型,…)*/

private final String CREATE_PERSON = "create table " + TABLE_NAME_PERSON + "(" +

VALUE_ID + " integer primary key," +

VALUE_NAME + " text ," +

VALUE_ISBOY + " integer," +

VALUE_AGE + " ingeter," +

VALUE_ADDRESS + " text," +

VALUE_PIC + " blob" +

")";

那怎么存,其实存的是字节数组byte[]

/**

* 添加数据

* @param model 数据模型

* @return 返回添加数据有木有成功

*/

public PersonModel addPersonDataReturnID(PersonModel model) {

//把数据添加到ContentValues

ContentValues values = new ContentValues();

values.put(VALUE_NAME, model.getName());

values.put(VALUE_AGE, model.getAge());

values.put(VALUE_ISBOY, model.getIsBoy());

values.put(VALUE_ADDRESS, model.getAddress());

//这里存储图片,model.getPic() 是一个字节数组

values.put(VALUE_PIC, model.getPic());

//添加数据到数据库

long index = getWritableDatabase().insert(TABLE_NAME_PERSON, null, values);

//不等于-1表示添加成功(可以看insert源码)

if (index != -1) {

model.setId(index);

return model;

} else {

return null;

}

}

怎么将图片变成字节数组?

/**

* @param resourceID 图片资源id

* @return 将图片转化成byte

*/

private byte[] picTobyte(int resourceID)

{

ByteArrayOutputStream baos = new ByteArrayOutputStream();

InputStream is = context.getResources().openRawResource(resourceID);

Bitmap bitmap = BitmapFactory.decodeStream(is);

//压缩图片,100代表不压缩(0~100)

bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);

return baos.toByteArray();

}

那怎么取出来呢?

//查询全部数据

Cursor cursor = getWritableDatabase().query(TABLE_NAME_PERSON, null, null, null, null, null, null, null);

byte pic[] = cursor.getBlob(cursor.getColumnIndex(VALUE_PIC));

Bitmap b = BitmapFactory.decodeByteArray(pic, 0, pic.length);

holder.pic.setImageBitmap(b);

1240

sqlite也无非就创建、增、删、改、查、更新。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/464748.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCU为什么内部不集成晶振

01MCU为什么不集成晶振本文将用STM32代替MCU。原因1:早些年,芯片的生产制作工艺也许还不能够将晶振做进芯片内部,但是现在可以了。这个问题主要还是实用性和成本决定的。实用性:如果封装进入STM32内部,不利于不同客户更…

[JSOI2007]建筑抢修 (贪心)

题目链接 Solution 可以考虑 \(dp\) ,但是很显然 \((n^2)\) 降不下来. 然后考虑贪心,首先,绝对的正确的是,在同等的情况下,给后面的留更多的时间. 首先按照 \(T_2\) 排序. 然后我们维护一个大根堆 每修理一栋建筑 我们就把这栋建筑的T1值加入堆 若当前无法修理 我们判断堆顶是否…

cad中怎么随意移动图形_cad中怎么随意移动图形_绘制CAD图纸的过程中CAD快捷键失灵了怎么办?...

很多人在使用笔记本绘制CAD图纸的过程中,当用到CAD快捷键的时候会发现部分CAD快捷键无法正常使用,比如按F8后并没有切换成正交状态,而是出来了连接投影仪的选项,而且其他的快捷键也无法使用了,如下图所示。在以前老的笔…

strcmp()

比较2个字符串,返回2个字符串的差值 int strcmp(const char *str1, const char *str2) {assert((NULL ! str1) && (NULL ! str2));while(*str1 && *str2 && (*str1 *str2)){str1;str2;}return (*str1 - *str2); }

元旦加班

因为项目紧张,元旦加班了,这是在腾讯的第二次节假日加班。相对于害怕加班,我也害怕一段时间一段时间的浪费光阴一事无成,更害怕一段时间,一段时间加班后也是一事无成。加班有时候也挺舒服的,为了给乌托邦的…

MySQL中修改表结构的关键字_下列SQL语句中,修改表结构的关键字是

【单选题】对《将进酒》全诗分析不正确的是【单选题】下列划线词语的解释有误的一项是【多选题】下列食品属于不完全蛋白质的是 ( ) 。【单选题】下列聚合函数中属性列必须是数值型的是【单选题】( )体现了商品生产者之间相互交换的劳动关系。【单选题】在SELECT语句中使用SUM(…

strncpy()

char *strncpy(char *dest, const char *src, unsigned int count) {assert((NULL ! dest) && (NULL ! dsrc));char *ret dest;if (0 count){return dest;}while (count-- > 0){if (!(*ret *src)) //\0{return dest;}}*ret \0;//切记!!!!!return dest; }

远程用power shell 管理vmware view 池用户

1. 在客户端安装POWER SHELL V2.0的系统补丁,补丁号码为KB968930,里面包括了winrm和powershell 2.0 2. 将view connection server服务器设置为winrm的信任主机: PS C:\ set-item wsman:\localhost\Client\TrustedHosts -value IP为了能在计…

GitHub的嵌入式开源项目

来源:嵌入式大杂烩关于GitHub,可能很多人误以为这是互联网人的专属,其实并不是,那上面嵌入式相关的开源项目是有很多的。现分享一些高星开源项目(像RT-Thread、AWTK等大家都熟知的就不介绍了):A…

项目开发日志:Build AssetBundle——SpriteAtlas(已解惑)

项目信息:平台-AndroidUnity编辑器版本-2018.2.5f1状况1:真机状况下引用到图集下的sprite的UI显示出错。(图集被打成AB包且勾选了Include in Build).在我们的测试下发现了以下两个解决方案:(当然我觉得第二…

strncat()

将源字符串的前count个字符拷贝到目的字符串中 char *strncat(char *dest, const char *src, size_t count) {assert((NULL ! dest) && (NULL ! dsrc));char *cp dest;if (0 count)//返回原来的{return dest;}while (*cp ! \0){cp ;}while (count-- > 0){if (!(*c…

Sangfor上网行为管理单点登录配置

单点登录功能介绍: 当用户成功登录到第三方认证服务器时,自动通过AC的认证,而无需再次输入用户名和密码。 优点: 用户只需要输入一次账号和密码,即可自动通过AC的认证,避免账号和密码的重复输入&#xff0c…

教你精确计算 I2C 上拉电阻阻值

I2C 总线能挂多少设备?理论上:7-bit address :2 的 7 次方,能挂 128 个设备。10-bit address :2 的 10 次方,能挂 1024 个设备。当然,要把预留设备地址去除,7 bit 协议规定了 8个预留…

原型设计+用户规格说明书

用户规格说明书 作业链接:https://edu.cnblogs.com/campus/fzzcxy/2016SE/homework/2180 原型模型设计工具: 墨刀 原型模型链接:https://modao.cc/app/6a5fcc03e409ffe37cfcdb9cb06914271744f131 学号1:362 何永康 学号2&#xff…

mysql数据库中_截取数据_mysql数据库的字符串截取方法

MySQL 字符串截取函数:left(), right(), substring(), substring_index()。还有 mid(), substr()。其中,mid(), substr() 等价于 substring() 函数,substring() 的功能非常强大和灵活。1. 字符串截取:left(str, length)mysql> …

排序算法之希尔排序(C/C++)

从第一个数开始,判断第一个数和n/2那个数的大小,如果v[0]大于v[n/2]就交换,1与3比较,2与4比较,3与5比较............... void shell_sort(char *str, int len) {int group 0, i 0, j 0, temp 0;if ((NULL str) ||…

fedora 忘记root密码

root密码是安装fedora15时设置的,如果你忘记了可以通过下面方法修改。 重启进入grub,在fedora15那一行安e进行编辑,再在以kernel开头的那行安e,在最后添加空格和single,接着安b,启动。 进入没有图形界面的但…

python 多次读取文件的细节

file open("test.txt", encoding"utf8")    #文档以utf8编码读取,不然默认gbk,中文会出现乱码 data file. read() data2 file.read() print(data2) #结果为空,第一次读完指针就停留在末尾,第二次读接…

排序算法之选择法排序(C/C++)

简单选择排序的基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r…

什么集成mysql_mysql集成部署

经常听说mysql数据库是集成在系统中,也一直不太明白集成的概念。今天才明白集成的概念就是将mysql所有的文件放到一个文件夹下放到系统中,也就是将mysql采用目录迁移部署的方式进行安装。在上一篇研究了mysql的数据存储结构之后,也研究了mysq…