sql数据库部分

sql数据库部分

转https://blog.csdn.net/discoverer100/article/details/51932529
找到 libqsqlmysql.so    
用 sudo find . -name libqsqlmysql.so 
然后进入那个目录执行
ldd libqsqlmysql.so
1
执行后,若发现存在下列问题:

libmysqlclient_r.so.16 => not found
libssl.so.10 => not found
libcrypto.so.10 => not found

则按照下列第2.2步和第2.3步的方法进行解决22.2 解决libmysqlclient_r.so.16 => not found的问题。下载 libmysqlclient.so.16,地址: http://files.directadmin.com/services/debian_5.0_64/libmysqlclient.so.16 
下载后将该文件拷贝至/usr/lib/x86_64-linux-gnu,并重命名为libmysqlclient_r.so.16,参照下列命令。
sudo cp /home/xiaoyafu/下载/libmysqlclient.so.16 /usr/lib/x86_64-linux-gnu
cd /usr/lib/x86_64-linux-gnu
sudo mv libmysqlclient.so.16 libmysqlclient_r.so.16 

执行完后,重新执行步骤2.1中的ldd libqsqlmysql.so,检查是否解决了该问题。

2.3 解决libssl.so.10 => not found和libcrypto.so.10 => not found的问题。执行下列命令:

sudo apt-get update
sudo apt-get install libssl1.0.0 libssl-dev
cd /lib/x86_64-linux-gnu
sudo ln -s libssl.so.1.0.0 libssl.so.10
sudo ln -s libcrypto.so.1.0.0 libcrypto.so.10

QT += sql

QSqlDatabase

该QSqlDatabase类处理与数据库的连接。

Driver Type Description
QDB2 IBM DB2
QIBASE Borland InterBase Driver
QMYSQL MySQL Driver
QOCI Oracle Call Interface Driver
QODBC ODBC Driver (includes Microsoft SQL Server)
QPSQL PostgreSQL Driver
QSQLITE SQLite version 3 or above
QSQLITE2 SQLite version 2
QTDS Sybase Adaptive Server
int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
    QApplication::addLibraryPath("/home/zz/Qt5.7.0/5.7/gcc_64/plugins/sqldrivers");
//    qDebug() << QCoreApplication::libraryPaths();
//    qDebug() << QSqlDatabase::drivers();
    //1.建立数据库
    QSqlDatabase db;    
    db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("192.168.88.131");
    db.setDatabaseName("mydata");
    db.setUserName("zz");
    db.setPassword("123");

    //2.打开数据库
    if(db.open())
    {
        qDebug()<<"DataBase opened!";
    }
    else
    {
        qDebug()<< "Error: Failed to connect database." << db.lastError();
    }
    //3.操作数据库
    QSqlQuery sql_query;
    QString create_sql="create table student3 ( id int primary key,name varchar(30),age int)";//3.1创建表
    sql_query.prepare(create_sql);
    if(!sql_query.exec()) qDebug() << "Error: Fail to create table." << sql_query.lastError();
    else qDebug()<<"table created!";

    QString insert_sql = "insert into student3 values (?, ?, ?)";                             //3.2插入数据
    sql_query.prepare(insert_sql);
    sql_query.addBindValue(1500730121);
    sql_query.addBindValue("Wang");
    sql_query.addBindValue(25);
    if(!sql_query.exec()) qDebug() << "Error: Fail to insert table." << sql_query.lastError();
    else qDebug()<<"table inserted!";

    if(!sql_query.exec("INSERT INTO student3 VALUES(3, \"Li\", 23)")) qDebug()<<"insert error!";
    QString update_sql = "update student3 set name = :name where id = :id";                   //3.3修改数据
//  update <table_name> set <f1=value1>, <f2=value2>… where <expression>;
    sql_query.prepare(update_sql);
    sql_query.bindValue(":name", "Qt");
    sql_query.bindValue(":id", 3);
    if(!sql_query.exec())
    {
        qDebug() << sql_query.lastError();
    }
    else
    {
        qDebug() << "updated!";
    }
    QString select_sql = "select id, name from student3";                                       //3.4查询数据
    if(!sql_query.exec(select_sql))
    {
        qDebug()<<sql_query.lastError();
    }
    else
    {
        while(sql_query.next())
        {
            int id = sql_query.value(0).toInt();
            QString name = sql_query.value(1).toString();
            qDebug()<<QString("id:%1    name:%2").arg(id).arg(name);
        }
    }
    QString delete_sql = "delete from student where id = ?";                                  //3.5删除
    sql_query.prepare(delete_sql);
    sql_query.addBindValue(3);
    if(!sql_query.exec())
    {
        qDebug()<<sql_query.lastError();
    }
    else
    {
        qDebug()<<"deleted!";
    }
    //4.关闭数据库
    db.close();
    return a.exec();
}

/*Result:
 * DataBase opened!
 * table created!
 * table inserted!
 * updated!
 * "id:3    name:Qt"
 * "id:1500730121    name:Wang"
 * QSqlError("1146", "QMYSQL: Unable to execute query", "Table 'mydata.student' doesn't exist")
*/

model部分请查看:高级控件

猜你喜欢

转载自blog.csdn.net/qq_33564134/article/details/84404439
今日推荐