qsqlite mysql_QT 5.6 自带的数据库QSqlite 使用实例

#include

#include

#include

#include

//1.连接 2.创建数据库3.建立表格4插入数据    数据库的表名可以为中文

//建立一个数据库连接

bool DataBase::createConnection()

{

//以后就可以用"CordinateData"与数据库进行连接了

QSqlDatabase db;

//= QSqlDatabase::addDatabase("QSQLITE", " CordinateData");//添加数据库驱动 创建连接

if (QSqlDatabase::contains("CordinateData"))

db= QSqlDatabase::database("CordinateData");

else

{

db= QSqlDatabase::addDatabase("QSQLITE", "CordinateData");

qDebug()<

}

QFile mFile("./xyDb.db");//如数据文件存在则删除

//if (mFile.exists())

// {

// mFile.remove();

// }

db.setDatabaseName(".//xyDb.db");//创建数据库

if (!db.open())

{

qDebug() << "Unable to establish database connection";

return false;

}

qDebug() << "Database open";

return true;

}

//创建数据库表

bool DataBase::createTable(QString tableName)

{

QSqlDatabase db = QSqlDatabase::database("CordinateData"); //建立数据库连接  id xdata ydata threshold flag range thresholdMin

QSqlQuery query(db);//注意 ‘%1’  单引号不要少  tablename可以是中文

bool success = query.exec(QString("create table '%1'(id int primary key,xdata double,ydata double,threshold int,flag double,range int,thresholdMin int)").arg(tableName));

if (success)

{

qDebug() << QObject::tr("create table success!\n");

return true;

}

else

{

qDebug() << QObject::tr("create table  failed\n");

return false;

}

}

//导入数据库, 建表插入//QString tableName, QVector data_x, QVector data_y,int threshold,double flag,int range,int thresholdMin

bool DataBase::insert(ObjectData obj)

{

QSqlDatabase db = QSqlDatabase::database("CordinateData"); //建立数据库连接

QSqlQuery query(db);

db.transaction();//事务

if (!createTable(obj.Name))

return false;

for (int i = 0; i < obj.y_data.size(); i++)

{

query.prepare(QString("insert into '%1' values(?, ?,?,?,?,?,?)").arg(obj.Name));

query.bindValue(0, i);

query.bindValue(1, obj.x_data.at(i));

query.bindValue(2, obj.y_data.at(i));

if (i == 0)

{

query.bindValue(3, obj.threshold);//默认阈值为1000;

query.bindValue(4, obj.flag);//最左右 与峰值的差值flag

query.bindValue(5, obj.range);//找峰值时左右幅度range

query.bindValue(6, obj.thresholdMin);//匹配不上 下降阈值幅度 匹配thresholdMin

}

else

{

query.bindValue(3, 0);

query.bindValue(4, 0);//最左右 与峰值的差值flag

query.bindValue(5, 0);//找峰值时左右幅度range

query.bindValue(6, 0);//匹配不上 下降阈值幅度 匹配thresholdMin

}

bool res=query.exec();

qDebug() << res;

}

if (db.commit())//提交事务 提高处理速度

{

qDebug() << "batch data";

}

return true;

}

//修改参数

bool DataBase::changeParametersByTableName(ObjectData obj)

{

QSqlDatabase db = QSqlDatabase::database("CordinateData"); //建立数据库连接

QSqlQuery query(db);

bool res = query.exec(QString("update '%1' set threshold = '%2',flag='%3',range='%4',thresholdMin='%5' where id=0").arg(obj.Name).arg(obj.threshold).arg(obj.flag).arg(obj.range).arg(obj.thresholdMin));

return res;

}

//查询所有信息 QSqlQuery DataBase::queryAll(QString tableName) { QSqlDatabase db = QSqlDatabase::database("CordinateData"); //建立数据库连接 QSqlQuery query(db); if (query.exec(QString("select * from %1").arg(tableName))) { qDebug() << "query success"; } QSqlRecord rec = query.record(); while (query.next()) { qDebug() << query.value(0) << query.value(1)<

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值