目录:
一、相关类介绍
二、调用流程及范例
三、常用SQL语句介绍
四、启用事务保证数据库的一致性
一、相关类介绍
1.数据库构成:数据库文件=N个数据表(类似Excel)构成;数据表=若干列(行)构成,一 列(行)设定为一个属性;
2.QSqlDatabase类:负责数据库底层驱动选取,数据库文件的创建,删除,关闭,链接。
3.QSqlQuery:负责数据表的创建,删除,行列数据的插入,修改,删除,查询
二、调用流程及范例
1.数据库文件的创建和链接:
bool bExist = QFile::exists("my.db"); //判断数据库文件是否存在
m_dataBase = QSqlDatabase::addDatabase("QSQLITE","123"); //选择数据库驱动为SqlLite;"123"为数据链接别名,通过QSqlDatabase::database函数获取m_dataBase 数据库对象,可默认为空。
m_dataBase.setDatabaseName("my.db"); //my.db 数据库文件名
m_dataBase.setUserName("user"); //访问数据库用户名
m_dataBase.setPassword("123456"); //访问数据库密码
m_dataBase.open(); //数据文件存在时,打开文件;文件不存在则创建文件并打开文件。
2.数据表创建及行列数据的增删改查:
QSqlQuery query(m_dataBase) //创建SQL对象并与数据库文件关联
query.exec("SQL语句") //对数据库执行 SQL语句,数据表操作参考SQL语句介绍。
while(query.next() ){
query.value(0).toString(); //获取查询属性数组的第一个属性值并转换为字符串。
} //query.next() 指针向后移动一行,使指针刚好处于查询位置处。exec执行后指针停止在查询位置前一行。 查询到的数据队列存放在query对象中,使用query.next() 可遍历队列中数据。
三、常用SQL语句介绍:
创建数据表并定义属性列:create table test (学号 int primary key,姓名 varchar(20),性别 varchar(4),年龄 int)。test为数据表名称,学号,姓名,性别,年龄为属性。int 为整形,varchar(20)为最大为20字节的字符串。primary key为主键,表示属性值不能重复,上语句中表示学号属性为主键,学号值不能重复。
插入数据:insert into test values(2012,'张三','男',20) 。test 为数据表名称,学号=2012,姓名=张三,性别=男,年龄=20。
删除数据:delete from test where 学号=2012 。删除test数据表学号为2012的行数据。
修改数据:update test set 年龄 =21 where 性别=男 and 姓名=张三。test数据表姓名=张三,性别=男所在行,年龄属性修改为21
查询数据:select 姓名,年龄 from test where where 年龄>50 or 年龄=<10。查询test数据表的姓名和年龄属性。查询条件:年龄大于50或者年龄小于10的姓名。query.value(0)等于姓名属性,query.value(1)等于年龄属性。
注意:字符串要用' '修饰
四、启用事务保证数据库的一致性
启用事务:m_dataBase.transaction();
提交数据至数据库:m_dataBase.commit();