qt資料庫mysql
1、sql語句判斷資料庫表是否存在:
sql:select * from user_all_tables where table_name='tableName'
如果結果為空則表示不存在,如何結果不為空則表示存在;
2、java如何判斷資料庫表是否存在
可以利用上面的sql,執行獲取結果,相應的java代碼如下:
String helperName= delegator.getGroupHelperName("com.asiainfo");
SQLProcessor sqlProcessor= new SQLProcessor(helperName);
String sql = "select * from user_all_tables where table_name='"+table+"'";
ResultSet rsTables =sqlProcessor.executeQuery(sql);
if(rsTables.next()){
Debug.logWarning("table:"+table+" exists", mole);
}else{
Debug.logWarning("table:"+table+" does not exist", mole);
}
❷ Qt5.7下連接mysql資料庫
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
這里需要把libmysql.dll文件拷貝到Qt的bin目錄中。或者自己編譯的時候,鏈接靜態庫。
參考:http://www.cnblogs.com/oloroso/p/5766068.html
參考:http://blog.csdn.net/u012997311/article/details/51405487
❸ Qt中,怎樣備份與恢復mysql資料庫
使用Qt做MySQL資料庫開發,遇到需要備份、還原資料庫的問題。
MySQL中沒有提供將資料庫備份成.sql文件的SQL語句,而是提供了一個mysqlmp.exe工具來完成這個功能。
沒有SQL語句,QSqlQuery就用不成了
❹ ubuntu linux 下使用Qt連接MySQL資料庫
Linux下完整的MySQL開發需要安裝伺服器端,如果安裝客戶端也沒什麼不好。直接在軟體中心搜mysql,把client和server選上。
環境說明:
ubuntu
10.04.2
QtSDK
(1.5G安裝包的那個)
mysql5.1
1.安裝MySQL
Linux下完整的MySQL開發需要安裝伺服器端,如果安裝客戶端也沒什麼不好。直接在軟體中心搜mysql,把client和server選上。
server在安裝時會提示為root用戶設置密碼,設一個好了。
我使用的是mysql5.1版本,用戶名密碼存儲在一個叫mysql的資料庫里,只有管理員級別才能看到。
如果直接在終端中輸入
mysql,可能會提示ERROR
1045
(28000),這是因為這時候你是以自己用戶名訪問資料庫,而目前資料庫中只有一個root用戶。沒關系,如果有必要,可以添加一個用戶進去:
mysql
-uroot
-p
--
以root用戶登錄
grant
usage
on
*.*
to
mmy@localhost;
--
授權名為mmy的用戶本地登錄,這里換成自己的用戶名就可以了
不過這時候直接mysql只有普通的許可權,創建資料庫、操作mysql都是不可以的,如果真有將其賦予管理員許可權的需要,可以自己查閱有關資料。
2.安裝Qt的MySQL驅動。
方法一:直接sudo
apt-get
install
libqt4-sql-mysql
,這是Qt4的mysql驅動,就不用自己費勁編譯了,不過可能會額外下載一些東西。
將
/usr/lib/qt4/plugins/sqldrivers/libqsqlmysql.so拷貝到你的QtSDK
sqldrivers目錄下,我當時是直接用普通許可權安裝,目錄為:~/QtSDK/Desktop/Qt/473/gcc/plugins/sqldrivers
方法二:其實你也可以sudo
apt-get
download
libqt4-sql-mysql,把包解壓縮,然後把裡面的so文件搜出來直接拷貝到那裡。
方法三:乖乖按照官方方法編譯,但是貌似可行性不大,因為新版本的QtSDK並沒有src目錄,默認也沒有mysql的驅動。
3.做個demo試一下
記得在pro文件中
QT
+=那裡加上sql,否則qmake是不會去找sql的相關部分的
復制代碼代碼如下:
#include
QtCore/QCoreApplication
#include
QSqlDatabase
#include
QDebug
int
main(int
argc,
char
*argv[])
{
QCoreApplication
a(argc,
argv);
QSqlDatabase
db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("study");
db.setUserName("root");
db.setPassword("tyh");
if(!db.open()){
qDebug()
"Unable
to
open
database";
}else{
qDebug()
"Database
connection
established";
}
return
a.exec();
}
這里study這個資料庫之前我已經創建過了,如果連接成功,就會顯示Database
connection
established。
我是建立的控制台程序哈。
軟體教程小編推薦:
Linux安裝配置MariaDB資料庫全程詳解
Linux系統怎麼設置開機密碼?
Linux啟動菜單修改教程
❺ qt 關於MYSQL資料庫名稱出現的問題
游戲有游戲的規則,各個軟體也有自己的默認規則的。建資料庫表名時別用數字命名,會和操作軟體起沖突的。這是個規范問題,遵循下就好了,沒有啥為什麼。就如你寫個程序,沒有判斷的話,啥都行。再者,你要是建類名的時候,寫數字:123,直接會出現紅X的,不合規。希望有用吧
❻ qt中怎麼連接mysql資料庫
1: windows 下登陸mysql 命令行,(1)進入cmd (2) cd mysql 安裝路徑/mysqlserver5.6/bin (3) 使用命令mysql -u root -p 然後根據提示輸入密碼 進入命令行 select user(); //顯示當前用戶 2: 在同一台電腦上利用Qt 訪問資料庫 (1)顯示當前電腦上安裝的資料庫驅動 QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() <<"/t" << driver; (2)QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");/對 QMYSQL進行操作,本函數 有第二個參數 連接名 db.setHostName("localhost");//或127.0.0.1 本主機 db.setPort(3306); db.setDatabaseName("example"); //對資料庫example進行操作 db.setUserName("wangxuetao"); //wangxuetao是一個對example資料庫有操作許可權的賬戶 db.setPassword("3791948"); 於是mysql中增加一個賬戶可使用 Grant all previliges on *.* to 『wangxuetao』@』localhost』 identified by 『3791948』 with grant option; Flush privileges; //更新 (3)db.open() 函數可由於檢測資料庫是否連接成功 cout<DBConnection(); 2. m_sqlquery = new QSqlQuery("",m_sqldb);//statement 1:connect db with sql query 3. if(result == R_OK) 4. { 5. result = m_sqlquery->exec("INSERT INTO children(fname,age) VALUES('A nn2',13)"); 6. if(!result) 7. qDebug()<<" [OK] "<<"EXEC successed"; 8. m_sqlquery->exec("SELECT * FROM children c LIMIT 0,1000"); 9. while(m_sqlquery->next()) 10. { 11. qDebug()<value(0).toString()<value(1). toString(); 12. } 13. }
❼ ubuntu下qt鏈接mysql資料庫問題
1,在.pro文件中修改 QT += sql ,大致如下
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
QT +=sql
2,在程序中添加資料庫
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
qDebug()<<QString("add database");
//db.setHostName("192.168.1.126");//遠程訪問
db.setHostName("localhost");
db.setDatabaseName("test");
//db.setDataBaseName("");
db.setUserName("root");
db.setPassword("000000");
if (!db.open())
return db.lastError();
❽ qt怎麼表格輸出mysql數據
1)創建ui界面 (2)導入頭文件 一、自動提交模式 二、手動提交模式 (1)構造函數中的代碼 (2) 「提交」按鈕的槽函數 在ui界面導入一個Table View。 這個控制項可以顯示表格,在代碼中我們通過setHeaderData()函數可以自定義每列的名稱。 需要用到以下頭文件,QSqlDatabase用於連接資料庫,QMessageBox用於彈出對話框,QSqlError用於顯示資料庫的錯誤信息,QSqlQuery和QSqlTableModel用於操作資料庫。 #include <QWidget> #include <QSqlDatabase> #include <QMessageBox> #include <QSqlError> #include <QString> #include <QSqlQuery> #include <QSqlTableModel> 在Qt窗口顯示的表格中改動數據,然後點擊回車,資料庫中的表格中的數據就自動更新了。 注意,在這里必須是敲擊回車才會進行資料庫的更新,如果直接用滑鼠切換到其他的地方是不會更新資料庫的。 //連接資料庫 QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1"); db.setUserName("root"); db.setPassword("123456"); db.setDatabaseName("aaa2"); if(db.open()==false){ QMessageBox::warning(this,"waring",db.lastError().text()); } //實例化model model = new QSqlTableModel(this); //將模型設置到視圖 ui->tableView->setModel(model); //給model設置數據表,前提條件是資料庫已經打開了 model->setTable("student");
❾ qt已經成功編譯mysql資料庫,為什麼不能載入成功
我在學習qt mysql的時候
網上搜索資料,好不容易編譯出來mysql
可是 我把編譯的dll復制到對應目錄下 運行後提示:不能載入
後來終於知道是為什麼了
因為編譯好了,把編譯成功的dll放在
D:\Qt\Qt5.0.1\5.0.1\mingw47_32\plugins\sqldrivers 這個目錄下 還不行的
還有一個步驟
就是把你安裝的mysql 也就是 E:\xampp\mysql\lib 這個目錄下的 libmysql.dll 這個文件復制到 D:\Qt\Qt5.0.1\5.0.1\mingw47_32\bin 這個目錄
然後測試 就可以正常運行了
為什麼要這樣一個步驟,我想你編譯的dll需要依賴mysql官方的那個libmysql.dll 所以 ,你需要復制過去
大概的步驟是:
1.下載mysql最新版本,安裝的時候選擇全部安裝,否則你安裝的mysql里沒有對應的c++文件 【也就是沒有E:\xampp\mysql\lib 和 E:\xampp\mysql\include 這2個目錄】 這2個目錄是很重要的
2.下載qt官方的qt源碼,【如果你下載的qt的安裝版,默認是沒有源碼的,你需要去qt官方再次下載一個源碼http://qt-project.org/downloads】