55#include " enablesqlmanager.h"
66#include " DDLog.h"
77
8+ #include < QtSql>
89#include < QLoggingCategory>
910#include < QDir>
1011#include < QSqlError>
@@ -22,58 +23,72 @@ using namespace DDLog;
2223
2324std::atomic<EnableSqlManager *> EnableSqlManager::s_Instance;
2425std::mutex EnableSqlManager::m_mutex;
25- void EnableSqlManager::insertDataToRemoveTable (const QString &hclass, const QString &name, const QString &path, const QString &unique_id, const QString strDriver)
26+ void EnableSqlManager::insertDataToRemoveTable (const QString &hclass, const QString &name, const QString &path, const QString &unique_id, const QString & strDriver)
2627{
27- QString sql = QString (" INSERT INTO %1 (class, name, path, unique_id, driver) VALUES ('%2', '%3', '%4', '%5', '%6');" )
28- .arg (DB_TABLE_REMOVE).arg (hclass).arg (name).arg (path).arg (unique_id).arg (strDriver);
29- if (!m_sqlQuery.exec (sql)) {
28+ // QString sql = QString("INSERT INTO %1 (class, name, path, unique_id, driver) VALUES (%2, %3, %4, %5, %6);")
29+ // .arg(DB_TABLE_REMOVE).arg(":hclass").arg(":name").arg(":path").arg(":unique_id").arg(":strDriver");
30+ if (!m_sqlQuery.prepare (" INSERT INTO remove (class, name, path, unique_id, driver) VALUES (:hclass, :name, :path, :unique_id, :strDriver);" )) return ;
31+ m_sqlQuery.bindValue (" :hclass" , QVariant (hclass));
32+ m_sqlQuery.bindValue (" :name" , QVariant (name));
33+ m_sqlQuery.bindValue (" :path" , QVariant (path));
34+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
35+ m_sqlQuery.bindValue (" :strDriver" , QVariant (strDriver));
36+
37+ if (!m_sqlQuery.exec ()) {
3038 qCInfo (appLog) << Q_FUNC_INFO << m_sqlQuery.lastError ();
3139 }
3240}
3341
3442void EnableSqlManager::removeDateFromRemoveTable (const QString &path)
3543{
36- QString sql = QString (" DELETE FROM %1 WHERE path='%2';" ).arg (DB_TABLE_REMOVE).arg (path);
37- if (!m_sqlQuery.exec (sql)) {
44+ QString sql = QString (" DELETE FROM %1 WHERE path=%2;" ).arg (DB_TABLE_REMOVE).arg (" :path" );
45+ if (!m_sqlQuery.prepare (sql)) return ;
46+ m_sqlQuery.bindValue (" :path" , QVariant (path));
47+ if (!m_sqlQuery.exec ()) {
3848 qCInfo (appLog) << m_sqlQuery.lastError ();
3949 }
4050}
4151
42- void EnableSqlManager::insertDataToAuthorizedTable (const QString &hclass, const QString &name, const QString &path, const QString &unique_id, bool exist, const QString strDriver)
52+ void EnableSqlManager::insertDataToAuthorizedTable (const QString &hclass, const QString &name, const QString &path, const QString &unique_id, bool exist, const QString & strDriver)
4353{
4454 // 数据库已经存在该设备记录
4555 if (uniqueIDExistedEX (unique_id)) {
4656 return ;
4757 }
4858
4959 // 数据库没有该设备记录,则直接插入
50- QString sql = QString (" INSERT INTO %1 (class, name, path, unique_id, exist, driver) VALUES ('%2', '%3', '%4', '%5', '%6', '%7');" )
51- .arg (DB_TABLE_AUTHORIZED).arg (hclass).arg (name).arg (path).arg (unique_id).arg (exist).arg (strDriver);
52- if (!m_sqlQuery.exec (sql)) {
60+ // QString sql = QString("INSERT INTO %1 (class, name, path, unique_id, exist, driver) VALUES (%2, %3, %4, %5, %6, %7);")
61+ // .arg(DB_TABLE_AUTHORIZED).arg(":hclass").arg(":name").arg(":path").arg(":unique_id").arg(":exist").arg(":strDriver");
62+ if (!m_sqlQuery.prepare (" INSERT INTO authorized (class, name, path, unique_id, exist, driver) VALUES (:hclass, :name, :path, :unique_id, :exist, :strDriver);" )) return ;
63+ m_sqlQuery.bindValue (" :hclass" , QVariant (hclass));
64+ m_sqlQuery.bindValue (" :name" , QVariant (name));
65+ m_sqlQuery.bindValue (" :path" , QVariant (path));
66+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
67+ m_sqlQuery.bindValue (" :exist" , QVariant (exist));
68+ m_sqlQuery.bindValue (" :strDriver" , QVariant (strDriver));
69+
70+ if (!m_sqlQuery.exec ()) {
5371 qCInfo (appLog) << Q_FUNC_INFO << m_sqlQuery.lastError ();
5472 }
5573}
5674
5775void EnableSqlManager::removeDataFromAuthorizedTable (const QString &key)
5876{
59- QString sql = QString (" DELETE FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_AUTHORIZED).arg (key);
60- if (!m_sqlQuery.exec (sql)) {
77+ QString sql = QString (" DELETE FROM %1 WHERE unique_id=%2;" ).arg (DB_TABLE_AUTHORIZED).arg (" :key" );
78+ if (!m_sqlQuery.prepare (sql)) return ;
79+ m_sqlQuery.bindValue (" :key" , QVariant (key));
80+ if (!m_sqlQuery.exec ()) {
6181 qCInfo (appLog) << m_sqlQuery.lastError ();
6282 }
6383}
6484
6585void EnableSqlManager::updateDataToAuthorizedTable (const QString &unique_id, const QString &path)
6686{
67- QString sql = QString (" UPDATE %1 SET path='%2' WHERE unique_id='%3';" ).arg (DB_TABLE_AUTHORIZED).arg (path).arg (unique_id);
68- if (!m_sqlQuery.exec (sql)) {
69- qCInfo (appLog) << m_sqlQuery.lastError ();
70- }
71- }
72-
73- void EnableSqlManager::updateDataToAuthorizedTable (const QString &unique_id, bool enable_device)
74- {
75- QString sql = QString (" UPDATE %1 SET enable='%2' WHERE unique_id='%3';" ).arg (DB_TABLE_AUTHORIZED).arg (enable_device).arg (unique_id);
76- if (!m_sqlQuery.exec (sql)) {
87+ QString sql = QString (" UPDATE %1 SET path=%2 WHERE unique_id=%3;" ).arg (DB_TABLE_AUTHORIZED).arg (" :path" ).arg (" :unique_id" );
88+ if (!m_sqlQuery.prepare (sql)) return ;
89+ m_sqlQuery.bindValue (" :path" , QVariant (path));
90+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
91+ if (!m_sqlQuery.exec ()) {
7792 qCInfo (appLog) << m_sqlQuery.lastError ();
7893 }
7994}
@@ -88,43 +103,50 @@ void EnableSqlManager::clearEnableFromAuthorizedTable()
88103
89104void EnableSqlManager::insertDataToPrinterTable (const QString &hclass, const QString &name, const QString &path)
90105{
91- QString sql = QString (" INSERT INTO %1 (class, name, path) VALUES ('%2', '%3', '%4');" ).arg (DB_TABLE_PRINTER).arg (hclass).arg (name).arg (path);
92- if (!m_sqlQuery.exec (sql)) {
106+ QString sql = QString (" INSERT INTO %1 (class, name, path) VALUES (%2, %3, %4);" ).arg (DB_TABLE_PRINTER).arg (" :hclass" ).arg (" :name" ).arg (" :path" );
107+ if (!m_sqlQuery.prepare (sql)) return ;
108+ m_sqlQuery.bindValue (" :hclass" , QVariant (hclass));
109+ m_sqlQuery.bindValue (" :name" , QVariant (name));
110+ m_sqlQuery.bindValue (" :path" , QVariant (path));
111+
112+ if (!m_sqlQuery.exec ()) {
93113 qCInfo (appLog) << Q_FUNC_INFO << m_sqlQuery.lastError ();
94114 }
95115}
96116
97117void EnableSqlManager::removeDataFromPrinterTable (const QString &name)
98118{
99- QString sql = QString (" DELETE FROM %1 WHERE name='%2';" ).arg (DB_TABLE_PRINTER).arg (name);
100- if (!m_sqlQuery.exec (sql)) {
119+ QString sql = QString (" DELETE FROM %1 WHERE name=%2;" ).arg (DB_TABLE_PRINTER).arg (" :name" );
120+ if (!m_sqlQuery.prepare (sql)) return ;
121+ m_sqlQuery.bindValue (" :name" , QVariant (name));
122+ if (!m_sqlQuery.exec ()) {
101123 qCInfo (appLog) << m_sqlQuery.lastError ();
102124 }
103125}
104126
105127bool EnableSqlManager::uniqueIDExisted (const QString &key)
106128{
107- QString sql = QString (" SELECT COUNT(*) FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_AUTHORIZED).arg (key);
108- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ()) {
109- return m_sqlQuery.value (0 ).toInt () > 0 ;
129+ QString sql = QString (" SELECT COUNT(*) FROM %1 WHERE unique_id=%2;" ).arg (DB_TABLE_AUTHORIZED).arg (" :param" );
130+ if (!m_sqlQuery.prepare (sql)) return false ;
131+ m_sqlQuery.bindValue (" :param" , QVariant (key));
132+ if (m_sqlQuery.exec () && m_sqlQuery.next ()) {
133+ return m_sqlQuery.value (0 ).toInt () > 0 ;
110134 }
111135 return false ;
112136}
113137
114138bool EnableSqlManager::uniqueIDExistedEX (const QString &key)
115139{
116- QString sql = QString (" SELECT COUNT(*) FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_AUTHORIZED).arg (key);
117- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ()) {
118- return m_sqlQuery.value (0 ).toInt () > 0 ;
119- }
120- return false ;
140+ return uniqueIDExisted (key);
121141}
122142
123143bool EnableSqlManager::isUniqueIdEnabled (const QString &key)
124144{
125- QString sql = QString (" SELECT enable FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_AUTHORIZED).arg (key);
126- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ()) {
127- return m_sqlQuery.value (0 ).toBool ();
145+ QString sql = QString (" SELECT enable FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_AUTHORIZED).arg (" :key" );
146+ if (!m_sqlQuery.prepare (sql)) return false ;
147+ m_sqlQuery.bindValue (" :key" , QVariant (key));
148+ if (m_sqlQuery.exec () && m_sqlQuery.next ()) {
149+ return m_sqlQuery.value (0 ).toInt () > 0 ;
128150 }
129151 return false ;
130152}
@@ -169,8 +191,10 @@ QString EnableSqlManager::authorizedInfo()
169191
170192QString EnableSqlManager::authorizedPath (const QString &unique_id)
171193{
172- QString sql = QString (" SELECT path FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_AUTHORIZED).arg (unique_id);
173- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ()) {
194+ QString sql = QString (" SELECT path FROM %1 WHERE unique_id=%2;" ).arg (DB_TABLE_AUTHORIZED).arg (" :unique_id" );
195+ if (!m_sqlQuery.prepare (sql)) return " " ;
196+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
197+ if (m_sqlQuery.exec () && m_sqlQuery.next ()) {
174198 return m_sqlQuery.value (0 ).toString ();
175199 }
176200 return " " ;
@@ -221,42 +245,57 @@ void EnableSqlManager::removePathUniqueIDList(QList<QPair<QString, QString> > &l
221245
222246void EnableSqlManager::insertWakeupData (const QString &unique_id, const QString &path, bool wakeup)
223247{
224- QString sql = QString (" INSERT INTO %1 (unique_id, path, wakeup) VALUES ('%2', '%3', '%4');" ).arg (DB_TABLE_WAKEUP).arg (unique_id).arg (path).arg (wakeup);
225- if (!m_sqlQuery.exec (sql)) {
248+ QString sql = QString (" INSERT INTO %1 (unique_id, path, wakeup) VALUES (%2, %3, %4);" ).arg (DB_TABLE_WAKEUP).arg (" :unique_id" ).arg (" :path" ).arg (" :wakeup" );
249+ if (!m_sqlQuery.prepare (sql)) return ;
250+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
251+ m_sqlQuery.bindValue (" :path" , QVariant (path));
252+ m_sqlQuery.bindValue (" :wakeup" , QVariant (wakeup));
253+
254+ if (!m_sqlQuery.exec ()) {
226255 qCInfo (appLog) << Q_FUNC_INFO << m_sqlQuery.lastError ();
227256 }
228257}
229258
230259bool EnableSqlManager::isWakeupUniqueIdExisted (const QString &unique_id)
231260{
232- QString sql = QString (" SELECT COUNT(*) FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_WAKEUP).arg (unique_id);
233- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ()) {
261+ QString sql = QString (" SELECT COUNT(*) FROM %1 WHERE unique_id=%2;" ).arg (DB_TABLE_WAKEUP).arg (" :unique_id" );
262+ if (!m_sqlQuery.prepare (sql)) return false ;
263+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
264+ if (m_sqlQuery.exec () && m_sqlQuery.next ()) {
234265 return m_sqlQuery.value (0 ).toInt () > 0 ;
235266 }
236267 return false ;
237268}
238269
239270void EnableSqlManager::updateWakeData (const QString &unique_id, const QString &path, bool wakeup)
240271{
241- QString sql = QString (" UPDATE %1 SET path='%2', wakeup='%3' WHERE unique_id='%4';" ).arg (DB_TABLE_WAKEUP).arg (path).arg (wakeup).arg (unique_id);
242- if (!m_sqlQuery.exec (sql)) {
272+ QString sql = QString (" UPDATE %1 SET path=%2, wakeup=%3 WHERE unique_id=%4;" ).arg (DB_TABLE_WAKEUP).arg (" :path" ).arg (" :wakeup" ).arg (" :unique_id" );
273+ if (!m_sqlQuery.prepare (sql)) return ;
274+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
275+ m_sqlQuery.bindValue (" :path" , QVariant (path));
276+ m_sqlQuery.bindValue (" :wakeup" , QVariant (wakeup));
277+ if (!m_sqlQuery.exec ()) {
243278 qCInfo (appLog) << m_sqlQuery.lastError ();
244279 }
245280}
246281
247282QString EnableSqlManager::wakeupPath (const QString &unique_id)
248283{
249- QString sql = QString (" SELECT path FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_WAKEUP).arg (unique_id);
250- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ()) {
284+ QString sql = QString (" SELECT path FROM %1 WHERE unique_id=%2;" ).arg (DB_TABLE_WAKEUP).arg (" :unique_id" );
285+ if (!m_sqlQuery.prepare (sql)) return " " ;
286+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
287+ if (m_sqlQuery.exec () && m_sqlQuery.next ()) {
251288 return m_sqlQuery.value (0 ).toString ();
252289 }
253290 return " " ;
254291}
255292
256293bool EnableSqlManager::isWakeup (const QString &unique_id)
257294{
258- QString sql = QString (" SELECT wakeup FROM %1 WHERE unique_id='%2';" ).arg (DB_TABLE_WAKEUP).arg (unique_id);
259- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ())
295+ QString sql = QString (" SELECT wakeup FROM %1 WHERE unique_id=%2;" ).arg (DB_TABLE_WAKEUP).arg (" :unique_id" );
296+ if (!m_sqlQuery.prepare (sql)) return false ;
297+ m_sqlQuery.bindValue (" :unique_id" , QVariant (unique_id));
298+ if (m_sqlQuery.exec () && m_sqlQuery.next ())
260299 return m_sqlQuery.value (0 ).toBool ();
261300 return false ;
262301}
@@ -265,23 +304,29 @@ void EnableSqlManager::insertNetworkWakeup(const QString &logical_name, bool wak
265304{
266305 // 先判断是否已经存在
267306 QString sqlAdd;
268- QString sqlExist = QString (" SELECT wakeup FROM %1 WHERE logical_name='%2';" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (logical_name);
269- if (m_sqlQuery.exec (sqlExist) && m_sqlQuery.next ()) {
270- sqlAdd = QString (" UPDATE %1 SET wakeup='%2' WHERE logical_name='%3';" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (wake).arg (logical_name);
307+ QString sqlExist = QString (" SELECT wakeup FROM %1 WHERE logical_name=%2;" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (" :logical_name" );
308+ if (!m_sqlQuery.prepare (sqlExist)) return ;
309+ m_sqlQuery.bindValue (" :logical_name" , QVariant (logical_name));
310+ if (m_sqlQuery.exec () && m_sqlQuery.next ()) {
311+ sqlAdd = QString (" UPDATE %1 SET wakeup=%2 WHERE logical_name=%3;" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (" :wake" ).arg (" :logical_name" );
271312 } else {
272- sqlAdd = QString (" INSERT INTO %1 (logical_name, wakeup) VALUES ('%2', '%3' );" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (logical_name).arg (wake);
313+ sqlAdd = QString (" INSERT INTO %1 (logical_name, wakeup) VALUES (%2, %3 );" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (" : logical_name" ).arg (" : wake" );
273314 }
274315
275-
276- if (!m_sqlQuery.exec (sqlAdd)) {
316+ if (!m_sqlQuery.prepare (sqlAdd)) return ;
317+ m_sqlQuery.bindValue (" :wake" , QVariant (wake));
318+ m_sqlQuery.bindValue (" :logical_name" , QVariant (logical_name));
319+ if (!m_sqlQuery.exec ()) {
277320 qCInfo (appLog) << Q_FUNC_INFO << m_sqlQuery.lastError ();
278321 }
279322}
280323
281324bool EnableSqlManager::isNetworkWakeup (const QString &logical_name)
282325{
283- QString sql = QString (" SELECT wakeup FROM %1 WHERE logical_name='%2';" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (logical_name);
284- if (m_sqlQuery.exec (sql) && m_sqlQuery.next ())
326+ QString sql = QString (" SELECT wakeup FROM %1 WHERE logical_name=%2;" ).arg (DB_TABLE_NETWORK_WAKEUP).arg (" :logical_name" );
327+ if (!m_sqlQuery.prepare (sql)) return false ;
328+ m_sqlQuery.bindValue (" :logical_name" , QVariant (logical_name));
329+ if (m_sqlQuery.exec () && m_sqlQuery.next ())
285330 return m_sqlQuery.value (0 ).toBool ();
286331 return false ;
287332}
@@ -300,13 +345,14 @@ void EnableSqlManager::setMonitorWorkingFlag(const bool &flag)
300345 QString sqlAdd;
301346 QString sqlExist = QString (" SELECT working_flag FROM %1 WHERE monitor_name='usb';" ).arg (DB_TABLE_MONITOR_DEV);
302347 if (m_sqlQuery.exec (sqlExist) && m_sqlQuery.next ()) {
303- sqlAdd = QString (" UPDATE %1 SET working_flag='%2' WHERE monitor_name='usb';" ).arg (DB_TABLE_MONITOR_DEV).arg (flag);
348+ sqlAdd = QString (" UPDATE %1 SET working_flag=%2 WHERE monitor_name='usb';" ).arg (DB_TABLE_MONITOR_DEV).arg (" : flag" );
304349 } else {
305- sqlAdd = QString (" INSERT INTO %1 (monitor_name, working_flag) VALUES ('usb', '%2' );" ).arg (DB_TABLE_MONITOR_DEV).arg (flag);
350+ sqlAdd = QString (" INSERT INTO %1 (monitor_name, working_flag) VALUES ('usb', %2 );" ).arg (DB_TABLE_MONITOR_DEV).arg (" : flag" );
306351 }
307352
308-
309- if (!m_sqlQuery.exec (sqlAdd)) {
353+ if (!m_sqlQuery.prepare (sqlAdd)) return ;
354+ m_sqlQuery.bindValue (" :flag" , QVariant (flag));
355+ if (!m_sqlQuery.exec ()) {
310356 qCInfo (appLog) << Q_FUNC_INFO << m_sqlQuery.lastError ();
311357 }
312358}
0 commit comments