qxorm mysql增删改查
时间: 2023-12-29 18:26:43 浏览: 29
以下是使用QxOrm进行MySQL增删改查的示例:
1. 连接到MySQL数据库:
```cpp
qx::QxSqlDatabase::getSingleton()->setDriverName("QMYSQL");
qx::QxSqlDatabase::getSingleton()->setHostName("localhost");
qx::QxSqlDatabase::getSingleton()->setDatabaseName("your_database_name");
qx::QxSqlDatabase::getSingleton()->setUserName("your_username");
qx::QxSqlDatabase::getSingleton()->setPassword("your_password");
qx::QxSqlDatabase::getSingleton()->open();
```
2. 定义数据模型类:
```cpp
class Student : public qx::QxOrm_Impl::QxModelSerializable
{
public:
long id;
std::string name;
int age;
// 其他属性和方法...
QX_REGISTER_FRIEND_CLASS(Student)
};
QX_REGISTER_HPP(Student, qx::trait::no_base_class_defined, 0)
typedef std::shared_ptr<Student> Student_ptr;
QX_REGISTER_COMPLEX_CLASS_NAME_CPP_QXORMLITE(Student, Student)
QX_REGISTER_COMPLEX_CLASS_NAME_HPP_QXORMLITE(Student, qx::trait::no_base_class_defined, 0)
```
3. 创建表结构:
```cpp
qx::dao::create_table<Student>();
```
4. 插入数据:
```cpp
Student_ptr student(new Student);
student->name = "John";
student->age = 20;
qx::dao::insert(student);
```
5. 查询数据:
```cpp
std::vector<Student_ptr> students;
qx::dao::fetch_all(students);
for (const auto& student : students)
{
std::cout << "ID: " << student->id << ", Name: " << student->name << ", Age: " << student->age << std::endl;
}
```
6. 更新数据:
```cpp
Student_ptr student = qx::dao::ptr<Student>(1); // 根据ID获取学生对象
if (student)
{
student->name = "Tom";
student->age = 22;
qx::dao::update(student);
}
```
7. 删除数据:
```cpp
qx::dao::delete_by_id<Student>(1); // 根据ID删除学生对象
```