C++、数据库、模板、操作符重载、乱想

正在考虑如果封装数据库操作,以便隐藏更多数据库的细节,让不懂 SQL 的开发者可以用 C++ 来描述他所要做的。 使用模板、操作符重载,也许我们能写出 这样的代码:
struct Item {     int id;     int value;     int useless; };    
Database<MYSQL> db("database_name");    
db.Open( "root:1234@connect" );    
Table<Item> table( "TableItem" );    
Field id=table( "id", &Item::value );    
Field value=table( "value", &Item::value );    
// 下面的语句等同    
//        SELECT id, value FROM TableItem WHERE id==15 AND value is not null ORDER BY id LIMIT 0, 10    
Query q( id, value );    
q[ ( id==15 ) && !IsNull(&Item::value) ].OrderBy( id ).Limit( 0, 10 );        
vector< Item > result;    
Recordset rs=Db.query( q );    
result.assign( rs.begin(), rs.end() );
ps: 打算把这个库叫做 cata,目前处于构思阶段 :)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值