qxorm,开始
来源:互联网 发布:吉林市退休工资算法 编辑:程序博客网 时间:2024/06/15 19:25
在成功配置好qxorm,并应用其自带的代码测试过后,就可以参照其官方文档来编写自己的程序了
qxblog.pro
include(../../QxOrm.pri)TEMPLATE = appDEFINES += _BUILDING_QX_BLOGINCLUDEPATH += ../../../QxOrm/include/DESTDIR = ../../../QxOrm/test/_bin/LIBS += -L"../../../QxOrm/test/_bin"!contains(DEFINES, _QX_NO_PRECOMPILED_HEADER) {PRECOMPILED_HEADER = ./include/precompiled.h} # !contains(DEFINES, _QX_NO_PRECOMPILED_HEADER)macx:CONFIG-=app_bundleCONFIG(debug, debug|release) {TARGET = qxBlogdLIBS += -l"QxOrmd"} else {TARGET = qxBlogLIBS += -l"QxOrm"} # CONFIG(debug, debug|release)HEADERS += ./include/precompiled.hHEADERS += ./include/export.hHEADERS += ./include/author.hHEADERS += ./include/blog.hHEADERS += ./include/category.hHEADERS += ./include/comment.hSOURCES += ./src/author.cppSOURCES += ./src/blog.cppSOURCES += ./src/category.cppSOURCES += ./src/comment.cppSOURCES += ./src/main.cpp
其中几项重要的:
0、当然要include QxOrm.pri,其中包含了各种需要文件的路径
1、qxormd,应用于debug,那么明显的,qxorm应用于release。这两个lib是在编译好qxorm之后产生的,libs要添加这两个.lib
2、precompiled_header : precompiled.h中包含两个头文件, 这两个头文件很重要。其中qxorm.h中包含了所有其他qxorm中的头文件,所以预编译显得重要的原因在于时间,以及其中包含的文件中的各种声明等等,这样一来,我们就不需要在之后自己定义的头文件中一个个的包含qxorm.h
3、export.h,其中定义了一些宏,这些宏我也没有搞清楚到底是用来干嘛的,但是在官网中说,这个头文件是必须的,每个用到qxorm的项目都要包含这个头文件。还要注意.pro文件中的building qxblog行。
头文件的写法:
#ifndef _QX_BLOG_AUTHOR_H_#define _QX_BLOG_AUTHOR_H_class blog;class QX_BLOG_DLL_EXPORT author{public:// -- typedef typedef qx_shared_ptr<blog> blog_ptr; typedef std::vector<blog_ptr> list_blog;// -- enum enum enum_sex { male, female, unknown };// -- properties QString m_id; QString m_name; QDate m_birthdate; enum_sex m_sex; list_blog m_blogX;// -- contructor, virtual destructor author() : m_id("0"), m_sex(unknown) { ; } virtual ~author() { ; }// -- methods int age() const;};QX_REGISTER_PRIMARY_KEY(author, QString)QX_REGISTER_HPP_QX_BLOG(author, qx::trait::no_base_class_defined, 0)typedef qx_shared_ptr<author> author_ptr;typedef qx::QxCollection<QString, author_ptr> list_author;#endif // _QX_BLOG_AUTHOR_H_
QX_REGISTER_PRIMARY_KEY()
这一行是用来修改主键的类型,本来默认的主键类型是long类型。官网中说,修改主键类型一定要在register hpp这一行的上面,不然编译会报错……
cpp的写法:
#include "../include/precompiled.h"#include "../include/author.h"#include "../include/blog.h"#include <QxMemLeak.h>QX_REGISTER_CPP_QX_BLOG(author)namespace qx {template <> void register_class(QxClass<author> & t){ t.id(& author::m_id, "author_id");//主键 t.data(& author::m_name, "name");//以m_name变量为数据,以name为头创建列 t.data(& author::m_birthdate, "birthdate"); t.data(& author::m_sex, "sex"); t.relationOneToMany(& author::m_blogX, "list_blog", "author_id");
//一对多关系,一个作者对应多个博客,blog存放在m_blog成员变量中,关联字段为author_id t.fct_0<int>(& author::age, "age");}}int author::age() const{ if (! m_birthdate.isValid()) { return -1; } return (QDate::currentDate().year() - m_birthdate.year());}
对于main函数的写法,其中对于数据库的操作,可以参照代码中的样子
学习QXORM的时间成本还是可以的,自带的方法以及类的写法参照官方文档熟悉起来很快,其自带的方法也很好懂。
对于sqlite的支持也很智能,基本上不用我们再动手去写sql命令。
只是这个框架并不支持除sqlite以外的数据库,虽然官网上说的是支持各种数据库,但是当你成功配置,开始写自己的项目的时候就会发现,一旦你使用除sqlite之外其他的数据库,他会提醒你若要支持其他数据库需要下载插件(收费,300欧每年)或者自己写逻辑或者下载各数据库自带的操作框架,十分坑爹。
- qxorm,开始
- QxOrm的学习使用
- QxOrm笔记(一)
- QxOrm编译使用手记
- QxOrm笔记(二)
- QxOrm 的安装
- QxOrm 1.2.9 下载 以及编译方法 简介.
- ~~~~~~~~开始~~~~~~~~
- 开始
- 开始
- 开始!
- 开始
- 开始
- 开始
- 开始
- 开始
- 开始
- 开始
- HTML5-localStorage应用
- EventBus源码分析(二):register方法保存事件的订阅者列表(2.4版本)
- php 制作文件上传类
- 键盘按键对应的数字
- iOS开发的一些奇巧淫技
- qxorm,开始
- BRE与ERE的差异
- iOS解决按钮短时间内多次点击只触发一次事件方法(开始写博客)
- vim基本命令备注
- TCP流量控制和拥塞控制
- 【HNOI2014】世界树
- Linux/Unix中如何在复制一个目录时排除其中的某个文件
- 一个可以创建任何艺术家风格的电影的神经网络
- 常见数据库常用数据类型、默认端口