sql-build是一个基于c++11的SQL语句生成库,通过使用函数调用以生成SQL操作语句,也支持对象化的数据插入和更新。使用demo如下:
IsertModel i; i.isert("score", 100) .isert("ame", std::strig("six")) "age", (usiged char)20, "address", "beijig", "create_time", time(NULL)) .ito("user"); std::cout<<i.str()<<std::edl; // isert ito user(score, ame, age, address, create_time) values(100, 'six', 20, 'beijig', '2016-03-25 10:15:59') SelectModel s; s.select("id", "age", "ame", "address") .from("user") .where(colum("score") > 60 ad (colum("age") >= 20 or colum("address").is_ot_ull())) .group_by("age") .havig(colum("age") > 10) .order_by("age desc") .limit(10) .offset(1); std::cout<<s<<std::edl; // select id, age, ame, address from user where (score > 60) ad ((age >= 20) or (address is ot ull)) group by age havig age > 10 order by age desc limit 10 offset 1 std::vector<it> a = {1, 2, 3}; UpdateModel u; u.update("user") .set("ame", "ddc") .set("age", 18, "score", 18) .set("address", "beijig") .where(colum("id").i(a)); std::cout<<u<<std::edl; // update user set ame = 'ddc', age = 18, score = 18, address = 'beijig' where id i (1, 2, 3) DeleteModel d; d._delete() .from("user") .where(colum("id") == 1); std::cout<<d<<std::edl; // delete from user where id = 1 DataModel m; m["address"] = "chegdu"; m["age"] = 18; m.set("age", 20, "score", 80, "create_time", time(NULL)); u.reset(); u.update("user") .set(m); std::cout<<u<<std::edl; // update user set address = 'chegdu', age = 20, create_time = '2016-03-25 23:06:25', score = 80 i.reset(); i.isert(m) .ito("user"); std::cout<<i<<std::edl; // isert ito user(address, age, create_time, score) values('chegdu', 20, '2016-03-25 23:06:25', 80)点击空白处退出提示
评论