通俗易懂玩QT QSql學習

2021-10-10 12:48:20 字數 3202 閱讀 3903

最近,因為公司的業務需求,需要使用 qt 操作 mysql 資料庫,特意學習了一下,這裡分享給大家。

qt 版本:qt 5.11.2(32位)

mysql 版本:mysql8.0.22(64位)

以下為連線步驟:

在 pro 或者 pri檔案中引入qt 的 sql 資料庫模組:

//修改之前

qt +

= core gui

//修改之後

qt +

= core gui sql

在檔案頭部或者標頭檔案中引入 qsql 模組:

#include

//資料庫驅動

#include

//資料庫查詢

定義乙個 qsqldatabase 物件,並賦值乙個成員變數,建立 mysql 資料庫驅動:

qsqldatabase db = qsqldatabase::

adddatabase

("qmysql"

);

對 qsqldatabase 物件進行連線配置:

db.

sethostname

("localhost");

//主機位址

db.setdatabasename

("test");

//資料庫名稱

db.setusername

("root");

//進入資料庫的使用者名稱

db.setpassword

("123456");

//進入資料庫的密碼

db.setport

(3306);

//資料庫使用的埠號

用 qt 建立乙個 mysql 資料庫連線:

db.

open()

;

if

(db.

open()

)else

建立乙個 qsqlquery 物件,用於自行後續的增刪查改操作:

a) 增添資料:

預處理新增資料方式一:

qsqlquery query;

query.

prepare

("insert into users (uname, pwd) values (:uname, :pwd)");

query.

bindvalue

(":uname"

,"root");

query.

bindvalue

(":pwd"

,"123");

query.

exec()

;

預處理新增資料方式二:

qsqlquery query;

query.

prepare

("insert into users (uname, pwd) values (:uname, :pwd)");

query.

bindvalue(0

,"root");

query.

bindvalue(1

,"123");

query.

exec()

;

預處理新增資料方式三:

qsqlquery query;

query.

prepare

("insert into users (uname, pwd) values (?, ?)");

query.

bindvalue(0

,"root");

query.

bindvalue(1

,"123");

query.

exec()

;

預處理新增資料方式四:

qsqlquery query;

query.

prepare

("insert into users (uname, pwd) values (?, ?)");

query.

addbindvalue

("root");

query.

bindvalue

("123");

query.

exec()

;

b) 刪除資料:

qsqlquery query;

query.

prepare

("delete from users where uname = ?");

query.

addbindvalue

("root");

query.

exec()

;

c) 查詢資料:

qsqlquery query

("select * from users");

while

(query.

next()

)

d) 修改資料:

qsqlquery query;

query.

prepare

("update users set pwd = '123456' where uname = ?");

query.

addbindvalue

("admin");

query.

exec()

;

關閉資料庫連線:

db.

close()

;

學習分享,一起成長!接觸qt的時間不長,目前差不多有兩個月了,有不足之處,歡迎大佬指出來,我會進行更正。有問題可以傳送郵件至 [email protected] ,不定時上線查收。

遷移學習,通俗易懂

一.背景 在之前用深度神經網路進行引數訓練時,我們每次的訓練都是從頭開始的,隨機地初始化網路。在網路層數不深的時候,訓練時間可以接受,但隨著現在網路構越來越複雜,網路層數越來越深,少則幾十層,多者上百層甚至上千層,如果任然每次都從頭開始訓練,時間的開銷則會非常大。例如imagenet網路的訓練常常需...

numpy bincount 通俗易懂

bincount的用途很簡單,就是統計出乙個列表的各個元素的出現次數。例如輸入是 1,0,2,2,1,2,3,5 那麼輸出就是 1,2,3,1,0,1 這樣的結果可能並不是很直觀,可能依然會有同學會問為什麼會輸出這樣的結果。我們看看 假如我們把輸入的列表中的數字都統計一遍,形成乙個字典 key是列表...

通俗易懂的C STL

泛型程式設計 generic programming 是一種語言機制,通過它可以實現乙個標準的容器庫。像類一樣,泛型也是一種抽象資料型別,但是泛型不屬於物件導向,它是物件導向的補充和發展。泛型程式設計在c 上的應用主要體現在兩方面 函式模板和類模板。接下來舉個栗子 csdn部落格 anyway,模板...