QxOrm的学习使用
来源:互联网 发布:威斯盾断桥铝 知乎 编辑:程序博客网 时间:2024/05/22 16:12
因工作需要,将原来花了很多时间写的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()
)这个不解释
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()
)这个是按照条件查询数据NULL
, const QStringList & columns = QStringList()
)- QxOrm的学习使用
- QxOrm 的安装
- qxorm,开始
- QxOrm笔记(一)
- QxOrm编译使用手记
- QxOrm笔记(二)
- QxOrm 1.2.9 下载 以及编译方法 简介.
- 学习组件的使用:
- 学习gridview的使用
- memcpy的使用学习
- PPR的使用学习
- 学习IHttpHandler的使用 。
- 学习Intent的使用
- 学习Intent的使用
- Libtool的学习使用
- 学习lock的使用
- 学习TClientDataset的使用
- 学习Reflector的使用
- Redis 事务
- vb.Net程序设计(一)——其实不太懂
- 远程连接出现“由于无法升级或重续本地计算机的客户端访问许可证,远程会话被中断。请跟服务器管理员联系。”问题的解决方法
- 解决方案:httpd: Could not reliably determine the server's fully qualified domain name
- 最流行的android组件大全 .
- QxOrm的学习使用
- ios 画图总结
- Linux 使用usb转串口作为调试串口
- ios 中 使用mod和exp生成公钥(.cer)
- iOS锁屏显示歌曲信息
- 常用谷歌地址和常用搜索引擎
- FFMPEG视音频编解码零基础学习方法
- PHP 命名空间 入门
- JSP中的include的两种用法