基于Dragonboard 410c实现sqlite3数据库存储与管理

今天给大家介绍如何利用sqlite3数据库来为dragonboard 410c开发进行数据存储和管理,sqlite3 是一款非常mini的数据库性能,被广泛的应用于各种嵌入式平台,包括目前的android系统都使用sqlite3来进行数据存储和管理,本文将介绍如何使用python脚本来访问sqlite3数据库系统,建立和维护自己的数据。
首先我们可以调用import sqlite3导入sqlite3数据库python模块,然后就可以编写代码来访问sqlite3数据库了,具体步骤如下:
1)连接数据库
self.db=sqlite3.connect(“database.db”)
通过上述代码可以实现与sqlite3数据库的连接,并且返回一个维护变量,用于访问sqlite3数据库,如果database,db不存在,会自动建立一个该数据库。
2)获取cursor
self.cu=self.db.cursor()
通过上述代码获取cursor,就可以通过该变量来访问数据库,执行相关的操作。
3)执行sql语句
self.db.execute(sql)
通过上述代码可以执行sql语句。
了解了上述操作接口,我们就可以方便的实现数据表的创建、数据读取、插入和更新等,下面通过一个具体的用户消息管理数据库的设计来介绍,这个数据库是用于我们后续要设计的智能魔镜的数据管理,大家如何在410c上构建自己的数据库代码,如下:
建立数据表
def inittable(self):
try:
#create userinfo table
self.db.execute(create table userinfo(userid integer primary key autoincrement,
name nvarchar(50),
password nvarchar(20),
email nvarchar(50),
phone nvarchar(50),
haarvalue nvarchar(50),
avatarimg nvarchar(50))
)
#create pushinfo table
#********************pushinfo table**********************#
# infotype 0 text info, 1 video info
#
self.db.execute(create table pushinfo(infoid integer primary key autoincrement,
ownerid integer,
pushid integer,
infotype integer,
infosubject nvarchar(50),
infocontent nvarchar(100),
filepath nvarchar(1000),
pushtime float,
infovaliditytime float,
istop integer,
viewweight integer
))
except:
print(table is already create)
同样我们可以对表中数据进行读取操作:
def getuseravatarimg(self,userid):
format=select avatarimg from userinfo where userid==%u
values=(userid)
querysql=format % values
print(querysql)
self.cu.execute(querysql)
result=self.cu.fetchone()
if result==none:
return -1
else:
return result[0]
还可以对表中数据进行插入操作
def inserttestdata(self,userinfo_n,pushinfo_n):
for userid in range(1,userinfo_n):
format=test%u
values=(userid)
username=format % values
format=password_test%u
password=format % values
format=email_test%uqq.com
useremail=format % values
format=phone_test%u
userphone=format % values
format=haarvalue_test%u
haarvalues=format % values
avatar=(random.randint(1,8))
format=./avatarimg/headimg/ali1/%u.gif
avatarimg=format % avatar
format=insert into userinfo values(%u,'%s','%s','%s','%s','%s','%s')
values=(userid,username,password,useremail,userphone,haarvalues,avatarimg)
insertsql=format % values
#print(insertsql)
self.cu.execute(insertsql)
for infoid in range(1,pushinfo_n):
ownerid=random.randint(1,userinfo_n)
pushid=random.randint(1,userinfo_n)
infotype=random.randint(0,1)
istop=random.randint(0,1)
viewweight=random.randint(1,8)
format = infosubject_pid:%u_wid:%u
values=(pushid,ownerid)
infosubject=format % values
format = infocontent_pid:%u_wid:%u
values=(pushid,ownerid)
infocontent=format % values
filepath=
if infotype==1:
format=./messagefile/ownerid%u/pushid%u_%u.mp4
values=(ownerid,pushid,infoid)
filepath=format % values
else:
filepath=none
pushtime=time.time()
format=insert into pushinfo values(%u,%u,%u,%u,'%s','%s','%s',%f,1.0,%u,%u)
values=(infoid,ownerid,pushid,infotype,infosubject,infocontent,filepath,pushtime,istop,viewweight)
insertsql=format % values
#print(insertsql)
self.db.execute(insertsql)
还可以进行更新操作,具体如下:
def setviewweight(self,infoid,weight):
format=update pushinfo set viewweight=%u where infoid == %u
values=(weight,infoid)
updatesql=format % values
self.cu.execute(updatesql)

如何挑把放心锁
广东联通携手华为打造出了全国首个5G多模一体化室内数字系统
台式拉力试验机的主要配置
环形变压器和方形变压器的区别
惊艳不输iphone8,黄章曝魅族pro7起售价4000元,你想要嘛?
基于Dragonboard 410c实现sqlite3数据库存储与管理
mcu市场格局现状分析报告
掌握模拟电子技术简介及要点梳理
新思科技Custom Design Platform获批三星7LPP工艺技术认证
海康机器人推出基于机器视觉引导机械臂拆码垛方案
机器人是怎样制造的
“注水”超级电池能让汽车跑3000公里
物联网解决方案选择数据库平台的四个步骤
通信网络如何突破毫秒障碍
星纵智能烟感探测器上市,构筑消防安全防线
艾迈斯半导体推出适用于高速电机的新型位置传感器,助力汽车行业的电气化发展
光耦TLP521缺货,潮光光耦网教你辨别真假521?
与「高通」最像的芯片公司出道,杀入主流智驾芯片市场
翎翔余压监控系统专为余压检测和控制的智能测控设备
AI加入:电子病历新规将施行,数字医疗还需分步走