QxOrm的学习使用

因工作需要,将原来花了很多时间写的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() 
  )
此函数用来返回所有的数据,其中T& t, 可传入一个链表如:QList<CDerrick> list;

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() 
  )
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值