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 语句构造类
#include " es_sqlite/es_sqlite.h"
#include < iostream>
int main (int argc, char *argv[])
{
SqliteConnection conn (" database.db" );
if (!conn.is_connected ())
{
std::cout << " open database failed" << std::endl;
return 0 ;
}
// 创建表
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;
}
return 0 ;
}
SqliteSelect、SqliteResult、SqliteRow、SqliteValue 使用
#include " es_sqlite/es_sqlite.h"
#include < iostream>
int main (int argc, char *argv[])
{
SqliteConnection conn (" database.db" );
if (!conn.is_connected ())
{
std::cout << " open database failed" << std::endl;
return 0 ;
}
// 查询
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;
}
return 0 ;
}
#include " es_sqlite/es_sqlite.h"
#include < iostream>
int main (int argc, char *argv[])
{
SqliteConnection conn (" database.db" );
if (!conn.is_connected ())
{
std::cout << " open database failed" << std::endl;
return 0 ;
}
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);
};
return 0 ;
}
#include " es_sqlite/es_sqlite.h"
#include < iostream>
int main (int argc, char *argv[])
{
SqliteConnection conn (" database.db" );
if (!conn.is_connected ())
{
std::cout << " open database failed" << std::endl;
return 0 ;
}
// 更新
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;
}
return 0 ;
}
#include < iostream>
#include " es_sqlite/es_sqlite.h"
int main (int argc, char *argv[])
{
SqliteConnection conn (" database.db" );
if (!conn.is_connected ())
{
std::cout << " open database failed" << std::endl;
return 0 ;
}
// 删除
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;
}
return 0 ;
}