Swift - SQLite中Data类型数据的插入、读取(BLOB类型字段)
发布时间:2020-12-14 06:15:08 所属栏目:百科 来源:网络整理
导读:我原来写一过一篇文章介绍如何使用第三方的 SQLiteBD 库来操作 SQLite 数据库( 点击查看)。当时存取的都是一些数字、字符串这样的基本数据类型,有网友问如果想存个图片进去应该怎么做。本文演示如何实现 Data 类型的数据存
我原来写一过一篇文章介绍如何使用第三方的
SQLiteBD库来操作
SQLite数据库(
点击查看)。当时存取的都是一些数字、字符串这样的基本数据类型,有网友问如果想存个图片进去应该怎么做。本文演示如何实现
Data类型的数据存取。
1,实现原理
(1)首先我们建表的时候,用于保存
Data数据的字段要使用大数据类型,比如:
BLOB(二进制数据)
(2)读取操作同其他数据类型的读取没什么差别。不过插入的时候要注意,不能直接将数据拼接到
sql语句中,而是要使用预处理语句:
|
import
UIKit
class
ViewController
:
UIViewController
{
@IBOutlet
weak
var
imageView:
UIImageView
!
db:
SQLiteDB
!
override
func
viewDidLoad() {
super
.viewDidLoad()
//获取数据库实例
db =
.shared
//打开数据库
_ = db.openDB()
//如果表还不存在则创建表(其中uid为自增主键)
result = db.execute(sql:
"create table if not exists t_image(uid integer primary key,idata blob)"
)
print
(
"表创建完毕:(result)"
)
}
//点击保存
@IBAction
saveData(_ sender:
Any
) {
//获取图片并转换为Data
imageURL =
Bundle
.main.url(forResource:
"0"
,withExtension:
"png"
)!
imageData = try!
Data
(contentsOf: imageURL)
//将Data数据插入到数据库
"insert into t_image(idata) values(?)"
result = db.execute(sql: sql,parameters:[imageData])
"数据保存完毕:(result)"
)
}
//点击加载
loadData(_ sender:
) {
data = db.query(sql:
"select * from t_image"
)
if
data.count > 0 {
//获取最后一行数据显示
image = data[data.count - 1]
if
imgData = image[
"idata"
]
as
?
{
self
.imageView.image =
UIImage
(data: imgData)
"数据读取完毕"
)
}
}
}
didReceiveMemoryWarning() {
.didReceiveMemoryWarning()
}
}
|
原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_1578.html
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!