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

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

今天给大家介绍如何利用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)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/dianzi/2556722.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-06
下一篇 2022-08-06

发表评论

登录后才能评论

评论列表(0条)

保存