因工作需要,将原来花了很多时间写的sqlite3的数据库操作模块全部换成QxOrm库来实现数据库操作:
1)将数据库表封装成一个类:
xxx.h
#include "precomplied.h"
class CDerrick
{
public:
CDerrick(void){};
virtual ~CDerrick(void){};
public:
int m_Level;
int m_Column;
long m_id;
QString m_Device;
QString m_Elestic;
};
//QX_REGISTER_PRIMARY_KEY(CDerrick, QString) //用来注册数据表主键类型为QString
QX_REGISTER_HPP_MY_TEST_EXE(CDerrick, qx::trait::no_base_class_defined, 1)
xxx.cpp
#include "Derrick.h"
#include "precomplied.h"
#include <QxMemLeak.h>
QX_REGISTER_CPP_MY_TEST_EXE( CDerrick )
namespace qx
{
template<> void register_class(QxClass< CDerrick > &t)
{
t.id( &CDerrick::m_id, "id" );
t.data( &CDerrick::m_Level, "Level");
t.data( &CDerrick::m_Column, "Column" );
t.data( &CDerrick::m_Device, "Device" );
t.data( &CDerrick::m_Elestic, "Elestic" );
}
}
以上不解释
其中插入数据、删除数据也不做多说,网上收一收,其中drug的例子写的很详细,这里说一下drug里没有的东西
1修改操作:
QSqlError qx::dao::update_by_query | ( | const qx::QxSqlQuery & | query, |
T & | t, | ||
QSqlDatabase * | pDatabase = NULL , | ||
const QStringList & | columns = QStringList() | ||
) | [inline |
query = qx::QxSqlQuery("where Device = "12");
update_by_query( query, t);
但是执行后,没有成功,后来查看它执行的SQL语句发现,更新操作语句中会自动添加id(主键)的条件:
update mytable set id = :id, Level = :level,,,,,where id = :id_bis and Device = '12',这样执行当然不会成功。
2、想使用联合主键,但是没有找到方法,如果知道方法的童鞋,谢谢告知一下。
3、查找操作:
QSqlError qx::dao::fetch_by_id | ( | T & | t, |
QSqlDatabase * | pDatabase = NULL , | ||
const QStringList & | columns = QStringList() | ||
) |
QSqlError qx::dao::fetch_all | ( | T & | t, |
QSqlDatabase * | pDatabase = NULL , | ||
const QStringList & | columns = QStringList() | ||
) |
QSqlError qx::dao::fetch_all | ( | T & | t, |
QSqlDatabase * | pDatabase = NULL , | ||
const QStringList & | columns = QStringList() | ||
) |
QSqlError qx::dao::fetch_by_query | ( | const qx::QxSqlQuery & | query, |
T & | t, | ||
QSqlDatabase * | pDatabase = NULL , | ||
const QStringList & | columns = QStringList() | ||
) |
QSqlError qx::dao::fetch_all | ( | T & | t, |
QSqlDatabase * | pDatabase = NULL , | ||
const QStringList & | columns = QStringList() | ||
) |