#include "xsqlexcute.h" XSqlExcute* XSqlExcute::g_pSqlExc = NULL; QMutex XSqlExcute::m_mutex; XSqlExcute::XSqlExcute(QObject *parent) : QObject(parent) { } XSqlExcute* XSqlExcute::instance() { if (g_pSqlExc == NULL) { QMutexLocker locker(&m_mutex); // 加锁 if (g_pSqlExc == NULL) { g_pSqlExc = new XSqlExcute(); } } return g_pSqlExc; } bool XSqlExcute::openMysql(QString hostName,QString databaseName,QString userName,QString password,QString connectionName) { if(QSqlDatabase::contains(connectionName)) { return true; } else { QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL",connectionName); db.setHostName(hostName); db.setDatabaseName(databaseName); db.setUserName(userName); db.setPassword(password); return db.open(); } } bool XSqlExcute::closeMysql() { // if(db.isOpen()) // db.close(); return true; } bool XSqlExcute::excuteSQL(QString sql,QString connectionName) { QSqlQuery q(QSqlDatabase::database(connectionName)); return q.exec(sql); } //查询 QSqlQuery XSqlExcute::query(QString sql,QString connectionName) { QSqlQuery q(QSqlDatabase::database(connectionName)); q.exec(sql); return q; } QSqlRecord XSqlExcute::record(QString sql,QString connectionName) { QSqlQuery q(QSqlDatabase::database(connectionName)); q.exec(sql); QSqlRecord r = q.record(); return r; } //事务 void XSqlExcute::transaction(QString connectionName) { QSqlDatabase::database(connectionName).transaction(); } void XSqlExcute::commit(QString connectionName) { QSqlDatabase::database(connectionName).commit(); } void XSqlExcute::rollback(QString connectionName) { QSqlDatabase::database(connectionName).rollback(); }