mysql 的查询结果,搞过一阵就知道,直接操作原生结果集麻烦又容易出错。封装个好用的类,真的是省心不少。QueryResult就是干这个的,功能挺全,适合拿来当工具类直接用。

查询结果的存储结构用的是数组或对象数组,读起来比较顺手。像 JS 的数组那样,随手就能用。

字段信息也考虑进去了,有个Field类专门管列名和类型那些事。Field.cppField.h就是它的家。

遍历结果集的时候可以用迭代器,写起来有点像 STL 的那套,用过的话就知道,蛮好上手的。

另外,还能查元数据,比如多少行多少列、字段名啥的,全都能拿到。用getValueByIndex或者getValueByName方法,按索引或列名都行,访问数据也方便。

查询要是失败了呢?错误信息也有反馈,debug 的时候省事多了。游标也支持,像moveNext那种操作直接来,不用管底层逻辑。

内存回收这块也没落下,资源释放做得比较到位,不用怕内存泄露。还有一些性能优化,比如延迟加载,数据多的时候不会一次性卡死。

设计得还挺通用的,理论上只要你换个数据库驱动,稍微适配一下,就能跑在别的数据库上。源码都在QueryResult.cppQueryResult.h里,看一眼就明白。

如果你经常跟数据库打交道,又不想每次都手动那些重复操作,那这套封装你真的可以考虑试试,挺省事的。