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)