QT中使用MySQL資料庫

2021-10-08 08:12:47 字數 3319 閱讀 4861

1.鏈結mysql

首先正確安裝mysql資料庫。

然後將libmysql.lib檔案放在qt安裝路徑下的對應編譯器的lib資料夾下,如f:\software\qt5.9.5\5.9.5\mingw53_32\lib。將libmysql.dll檔案放在qt安裝路徑對應編譯器的bin資料夾下。

最後可正常鏈結使用資料庫。

ui-

>

setupui

(this);

qsqlquery query;

mutex.

lock()

;//互斥鎖,可以不用

qsqldatabase db = qsqldatabase::

adddatabase

("qmysql","aaa");

//qmysql不要變,aaa為連線名,可隨意命名,當乙個程式有多個地方需要鏈結資料庫時最好使用連線名。

//如使用則下面的query = qsqlquery("",db)

//不使用則:qsqldatabase db = qsqldatabase::adddatabase("qmysql");query = qsqlquery(db)

db.sethostname

("localhost");

//主機名

db.setport

(3306);

//埠號,一般為3306,若安裝資料庫時更改則需要做相應的更改

db.setusername

("root");

//使用者名稱

db.setpassword

("pusong");

//密碼

db.setdatabasename

("ps");

//資料庫名,在鏈結前需要保證資料庫中已經建立了該資料庫,建立語句:create database ps;

bool flag = db.

open()

;//判斷是否成功鏈結標誌

if(flag ==

true

)else}}

mutex.

unlock()

;//互斥鎖,前面未用則刪除

query =

qsqlquery

(db)

;

2.qsqlquery2.1 query.exec("…")執行sql語句query.exec("…"),主要應用於查詢、建立、刪除

qstring compren =

qstring

("select * from ak;");

//全表查詢

bool fflag = query.

exec

(compren)

;

query.

exec

("create table motorzuyuan(id int primary key,well int,valve int)"

);

query.

exec

("drop table motorzuyuan"

);

2.2 query.next()sqlquery提供了乙個訪問一條查詢結果記錄的方法。在呼叫了exec()方法之後,qsqlquery的內部指標定位到了第一條記錄之前的位置。我們必須呼叫一次qsqlquery::next()內部指標就移動到第一條記錄上(第一行),然後重複呼叫next()方法就可以移動到其他記錄上,直到該函式返回false為止。所以一般需要建立while迴圈。

2.3 query.value(…)

sqlquery::value()函式返回當前記錄的行乙個字段值。欄位的索引號從0開始計數。qsqlquery::value()返回乙個qvariant,這個型別可以儲存各種c++和核心的qt資料型別,比如int, qstring和qbytearray等。不同的資料庫型別將自動地對映到最近的qt等價型別。可以使用toint,tostring,todouble等轉換為自己需要的結果。

while

(query.

next()

)

2.4 query.prepare("…")一般用於插入,刪除,更新。此函式語句可利用變數運算元據庫

bindvalue()名稱繫結

addbindvalue()順序/位置繫結

qstring insert=

"insert into motorzuyuan"

"(id,well,valve) "

"values(:id,:well,:valve);"

;bool insertfalg =query.

prepare

(insert)

;//插入操作

if(insertfalg ==

false

)else

query.

bindvalue

(":id"

,k);

query.

bindvalue

(":well",-

1); query.

bindvalue

(":valve",-

1); query.

exec()

;

query.

prepare

("insert into employee (id, name, salary) "

"values (?, ?, ?)");

query.

addbindvalue

(1001);

query.

addbindvalue

("thad beaumont");

query.

addbindvalue

(65000);

query.

exec()

;

3. 可通過命令列執行框檢視運算元據庫當某資料庫中有表時可使用:desc 表名; 來檢視表中的資料

建立表:create table 表名

建立資料庫:create database 庫名

刪除:drop 表名/庫名

在Qt中使用SQLite資料庫

sqlite sql 是一款開源輕量級的資料庫軟體,不需要server,可以整合在其他軟體中,非常適合嵌入式系統。qt5以上版本可以直接使用sqlite qt自帶驅動 引入sql模組 在qt專案檔案 pro檔案 中,加入sql模組 qt sql include include include檢查連線...

C 中使用mysql資料庫方法

通過vc開發mysql資料庫應用軟體有多種方式 一 通過myodbc介面 二 通過connector c l介面 三 通過mysql c api介面 四 第三方封裝的mysql類 在經過反覆比較,我還是選擇了mysql c api方式來進行mysql的開發。在vc中使用mysql的步驟如下 2 安裝...

在python中使用mysql資料庫

先用pip安裝一下mysql pip install pymysql使用的時候,import python import pymysql python連線資料庫操作 開啟資料庫連線 def connectdb print 連線到mysql伺服器.db pymysql.connect localhos...