数据库存储 for SQList

SQList是一款开源,小巧,零配置的关系型数据库,现在运行的安卓,ios基本都是使用SQList数据库作为本地存储方案,有一些需要储存在本地的数据,虽然可以用xml,json等格式保存数据,但是不利于检索,因此将它们保存在SQList数据库中.是本地储存的最佳方案

PS:在对数据进行增删改查之前,要想使用connect函数打开SQList数据库,通过cursor方法获取sqlist3.Cursor对象,通过sqlist3.Cursor对象的execute方法执行各种sql语句

如果执行查询语句(select),那么execute方法会返回sqlist3.Cursor对象,需要迭代才能获取查询的值

import sqlite3
import os
dbPath='data.sqlite'
# 只有data.sqlite文件不存在时才会创建该文件
if not os.path.exists(dbPath):
    conn=sqlite3.connect(dbPath)
    # 获取sqlite3.cursor对象
    c=conn.cursor()
    # 创建person表
    c.execute("""CREATE TABLE persons
     (id INT PRIMARY KEY NOT NULL,
     name TEXT NOT NULL,
     age INT NOT NULL,
     address CHAR(50),
     salary REAL);""")
    # 修改数据库后必须调用commit方法提交才能生效
    conn.commit()
    # 关闭数据库连接
    conn.close()
    print('创建数据库成功')

conn=sqlite3.connect(dbPath)
c=conn.cursor()
# 删除persons表中得所有数据
c.execute('delete from persons')
# 下面的4条语句向persons表中插入4条记录
c.execute("INSERT INTO persons(id,name,age,address,salary)"
          " VALUES(1,'Paul',32,'California',20000.00)")
c.execute("INSERT INTO persons(id,name,age,address,salary)"
          "VALUES(2,'Allen',25,'Texas',15000.00)")
c.execute("INSERT INTO persons(id,name,age,address,salary)"
          "VALUES(3,'Teddy',23,'Norway',20000.00)")
c.execute("INSERT INTO persons(id,name,age,address,salary)"
          "VALUES(4,'Mark',25,'Rich-Mond',65000.00)")
conn.commit()
print('插入数据成功')
# 查询persons表中的所有记录,并按age升序排列
persons=c.execute("select name,age,address,salary from persons order by age")
print(type(persons))
result=[]
# 将sqlite3.cursor对象中得数据转换为列表形式
for person in persons:
    value={}
    value['name']=person[0]
    value['age']=person[1]
    value['address']=person[2]
    result.append(value)
conn.close()
print(type(result))
# 输出查询结果
print(result)

# 将查询结果转换为字符串形式,如果将数据通过网络传输,首先要转换成字符串的形式才能传输
import json
resultStr=json.dumps(result)
print(type(resultStr))
print(resultStr)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值