最近,因為公司的業務需求,需要使用 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,模板...