急需,,将txt文件导入到qt数据库中,我用的c++

就是将文本文件中的数据导入到qt数据库当中,在网上找了挺多的都说的不清楚,最主要是我是小白,有大神教一下嘛

QT是可以对任何数据库操作的,而且连接和操作大同小异,基本上是sql语句和类型转化时的细微差别。
以mysql为例子

假设你的建表语句如下
创建表
包含id、文件名、文件内容

CREATE TABLE filedata(
    id     INT     PRIMARY KEY AUTO_INCREMENT,
    filename    VARCHAR(255),
    data     MEDIUMBLOB
);

Qt连接mysql数据库

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); //添加数据库名称,这里写QMYSQL
    db.setHostName("127.0.0.1"); //设置数据库主机名
    db.setDatabaseName("test"); //设置数据库名
    db.setUserName("root"); //设置数据库用户名
    db.setPassword("1234"); //设置数据库密码
    if (!db.open()) {
        qDebug() << "Error: Failed to connect database." << db.lastError();
    } else {
        qDebug() << "Succeed to connect database.";
    }

写入文件到Mysql
一般都是把文件数据转化成QByteArray,然后insert到数据库

void WriteDataToMysql()
{
    //选择要写入的文件
    QString f = QFileDialog::getOpenFileName();

    //转换为字节数组
    QByteArray mapData;
    QFile file(f);
    file.open(QIODevice::ReadOnly);
    mapData = file.readAll();
    file.close();

    //插入数据
    QSqlQuery query;
    query.prepare("INSERT INTO filedata values(:id,:name,:data)");
    query.bindValue(":id", 1);
    query.bindValue(":name", "testName");
    query.bindValue(":data", mapData);
    if (!query.exec()) {
        qDebug() << query.lastError();
    } else {
        qDebug() << "inserted data successfully!";
    }
}

从Mysql读取文件到本地
读取就是读出来,调用toByteArray。
void Widget::readDataFromMysql()
{

QSqlQuery readquery;

QByteArray databa;
if (readquery.exec("select data from filedata where name = 'testName'")) {
    QSqlRecord myrecord = readquery.record();

    if (readquery.next()) {
        databa = readquery.value(myrecord.indexOf("data")).toByteArray(); //读取二进制对象
    }
}
QFile mybfile("b.mov");        //写到本地文件,存什么后缀文件名就写什么
mybfile.open(QIODevice::WriteOnly);
mybfile.write(databa);
mybfile.close();
qDebug() << "write data successfully!";

}