Qt で MySQL データベースを操作するには、まず mysql をインストールする必要があります。 MySQL の libmusql.dll ファイルを Qt インストール パスの bin フォルダーにコピーするだけです。
libmysql.dll ファイルをこのフォルダーに直接貼り付けます。
コピーが成功したら、ドライバーが正常にインストールされたかどうかをテストし、新しいファイルを作成します。 Qt デザイナー インターフェイス クラスを選択すると、後続のすべての操作をデフォルトのままにすることができます。
新しく生成された .cpp ファイルに次のライブラリを導入します
#include <QSqlDatabase> #include <QDebug> #include <QMessageBox> #include <QSqlError> #include <QString> #include <QSqlQuery> #include <QVariantList>
コンストラクターに次のコードを挿入し、警告ウィンドウが表示されない場合は [実行] をクリックします。ポップアップ インストールが成功したことを意味します。それ以外の場合は失敗します。
//添加一个数据库 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //括号内要写出数据库的类型 //设置数据库 db.setHostName("127.0.0.1"); //设置数据库的主机ip //设置数据库的用户名 db.setUserName("root"); //设置数据库的密码 db.setPassword("123456"); //这个就是安装MySQL时设置的密码 //设置数据库的名字 db.setDatabaseName("aaa2"); //打开数据库(已经安装过mysql驱动了) if(db.open()==false){ QMessageBox::warning(this,"waring",db.lastError().text()); }
まず QString オブジェクトの SQL を作成し、SQL 内に実行するステートメントを記述してから、 QSqlQuery クラス オブジェクト クエリは、その exec() 関数を呼び出して SQL のコードを実行します。
QString sql = "insert into student (id,name,age,math) values (1,'kaw',20,97)"; //书写想要执行的语句 QSqlQuery query; //创建一个QSqlQuery对象 query.exec(sql); //执行mysql语句
SQLでは各文をセミコロンで区切ることで複数の文を同時に実行することができます。テーブルの追加、削除、更新を同時に行うには、次の操作を実行します。
QString sql = "insert into student (id,name,age,math) values (13,'kaw',20,97);delete from student where id=2;update student set name='sdd',math=100 where id=10;"; QSqlQuery query; //创建一个QSqlQuery对象 query.exec(sql); //执行mysql语句
方法 1: addBindValue()
実行するステートメントを query.prepare() に入力します。 -entered 値は「?」に置き換えられます。「?」はワイルドカード文字です。後で設定したい値を追加する場合は、idList、nameList、ageList、mathList を使用できます。エラーを避けるために、id、name、age、math の順に addBindValue() を使用して値をバインドしてください。
QSqlQuery query; query.prepare("insert into student (id,name,age,math) values (?,?,?,?)"); //书写语句模型 //添加绑定数据 QVariantList idList; //创建一个id列表 idList << 15<<16<<17; query.addBindValue(idList); //完成第一个?的绑定 QVariantList nameList; nameList << "ddd"<<"eee"<<"jjj"; query.addBindValue(nameList); //完成第二个?的绑定 QVariantList ageList; ageList << 25<<24<<23; query.addBindValue(ageList); //完成第三个?的绑定 QVariantList mathList; mathList << 90<<89<<90; query.addBindValue(mathList); //完成第四个?的绑定 //执行批处理 query.execBatch();
方法 2:bindValue()
カスタム名を直接使用してバインドを完了します。このとき、バインド順序は自分で決定できます。
QSqlQuery query; query.prepare("insert into student (id,name,age,math) values (:id,:name,:age,:math)"); //:id之类的名字时自定义的 自己方便就好 //添加绑定数据 QVariantList idList; //创建一个id列表 idList << 18<<19<<20; query.bindValue(":id",idList); //完成:id的绑定 QVariantList nameList; nameList << "ddd"<<"eee"<<"jjj"; query.bindValue(":name",nameList); //完成:name的绑定 QVariantList ageList; ageList << 25<<24<<23; query.bindValue(":age",ageList); //完成:age的绑定 QVariantList mathList; mathList << 90<<89<<90; query.bindValue(":math",mathList); //完成:math的绑定 //执行批处理 query.execBatch();
(4) クエリ
クエリ対象のテーブルは次のとおりです:
value の後の値はインデックスまたは列になります。名前。取り出したら、対応するデータ型に変換する必要があります。
//查询操作 QSqlQuery query; query.exec("select * from student"); while(query.next()){ qDebug()<<query.value(0).toInt() <<query.value("name").toString().toUtf8().data() <<query.value(2).toInt() <<query.value(3).toInt(); }
クエリ結果:
以上がQtでMySQLデータベースを操作する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。