Skip to content

Repository files navigation

es_sqlite数据库操作接口

include/
└── es_sqlite
├── es_sqlite.h -- 包含所有其他头文件
├── SqliteConnection.h -- 连接管理 SqliteConnection("database.db")
└── SqliteValue.h -- 值管理 {name, value, type}
├── SqliteRow.h -- 行数据 SqliteValue[name]
├── SqliteResult.h -- 查询结果 SqliteRow[]
├── SqliteField.h -- 字段创建语句构造类
├── SqliteTable.h -- CREATE TABLE 语句构造类
├── SqliteInsert.h -- INSERT 语句构造类
├── SqliteFilter.h -- 过滤条件语句构造类
├── SqliteDelete.h -- DELETE 语句构造类
├── SqliteSelect.h -- SELECT 语句构造类
├── SqliteUpdate.h -- UPDATE 语句构造类

SqliteTable 使用

#include"es_sqlite/es_sqlite.h"
#include<iostream>intmain(int argc, char *argv[])
{
SqliteConnection conn("database.db");
if (!conn.is_connected())
{
std::cout << "open database failed" << std::endl;
return0;
}
// 创建表
SqliteTable table("test");
// 构造表字段
table
.add_field("id", SqliteField::INT, SqliteField::IS_PRIMARY | SqliteField::IS_NOT_NULL)
.add_field("name", SqliteField::TEXT)
.add_field("age", SqliteField::INT)
.add_field("phone", SqliteField::TEXT)
.add_field("email", SqliteField::TEXT);
// 执行创建表bool ret = table.create(conn);
if (ret)
{
std::cout << "create table success" << std::endl;
}
else
{
std::cout << "create table failed" << std::endl;
}
return0;
}

SqliteSelect、SqliteResult、SqliteRow、SqliteValue 使用

#include"es_sqlite/es_sqlite.h"
#include<iostream>intmain(int argc, char *argv[])
{
SqliteConnection conn("database.db");
if (!conn.is_connected())
{
std::cout << "open database failed" << std::endl;
return0;
}
// 查询
SqliteSelect select("test");
SqliteResult result;
select.get("*");
bool ret = select.query(conn, result);
for (int i = 0; i < result.get_total(); i++)
{
const SqliteRow &row = result[i];
std::cout << row["id"].get_int() << "" << row["name"].get_string() << "" << row["age"].get_int() << "" << std::endl;
}
return0;
}

SqliteInsert使用

#include"es_sqlite/es_sqlite.h"
#include<iostream>intmain(int argc, char *argv[])
{
SqliteConnection conn("database.db");
if (!conn.is_connected())
{
std::cout << "open database failed" << std::endl;
return0;
}
struct { std::string name; int age; } data[] = {
{"张三", 18},
{"王五", 20},
{"赵六", 25},
{"钱七", 30},
{"孙八", 35},
{"周九", 40},
{"吴十", 45}
};
SqliteTable table("test");
SqliteInsert insert("test");
for (auto &d : data)
{
insert["name"] = d.name;
insert["age"] = d.age;
insert.execute(conn);
};
return0;
}

SqliteUpdate使用

#include"es_sqlite/es_sqlite.h"
#include<iostream>intmain(int argc, char *argv[])
{
SqliteConnection conn("database.db");
if (!conn.is_connected())
{
std::cout << "open database failed" << std::endl;
return0;
}
// 更新
SqliteUpdate update("test");
// 构造更新语句
update["age"] = 20;
update["phone"] = "1234567890";
update["email"] = "1234567890@qq.com";
update.and_where("name", "=", "张三");
// 等效构造更新语句
update
.set("age", 20)
.set("phone", "1234567890")
.set("email", "1234567890@qq.com")
.and_where("name", "=", "张三");
// 执行更新语句bool ret = update.execute(conn);
if (ret) {
std::cout << "update success" << std::endl;
}
else
{
std::cout << "update failed" << std::endl;
}
return0;
}

SqliteDelete使用

#include<iostream>
#include"es_sqlite/es_sqlite.h"intmain(int argc, char *argv[])
{
SqliteConnection conn("database.db");
if (!conn.is_connected())
{
std::cout << "open database failed" << std::endl;
return0;
}
// 删除
SqliteDelete delete_("test");
delete_.and_where(SqliteFilter("age", "=", "18"));
bool ret = delete_.execute(conn);
if (ret) {
std::cout << "delete success" << std::endl;
} else {
std::cout << "delete failed" << std::endl;
}
return0;
}

About

c++封装sqlite.h的部分功能field、table、value、row、result、filter、insert、select、update、delete

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages