mysql 的查询结果,搞过一阵就知道,直接操作原生结果集麻烦又容易出错。封装个好用的类,真的是省心不少。QueryResult
就是干这个的,功能挺全,适合拿来当工具类直接用。
查询结果的存储结构用的是数组或对象数组,读起来比较顺手。像 JS 的数组那样,随手就能用。
字段信息也考虑进去了,有个Field
类专门管列名和类型那些事。Field.cpp
和Field.h
就是它的家。
遍历结果集的时候可以用迭代器,写起来有点像 STL 的那套,用过的话就知道,蛮好上手的。
另外,还能查元数据,比如多少行多少列、字段名啥的,全都能拿到。用getValueByIndex
或者getValueByName
方法,按索引或列名都行,访问数据也方便。
查询要是失败了呢?错误信息也有反馈,debug 的时候省事多了。游标也支持,像moveNext
那种操作直接来,不用管底层逻辑。
内存回收这块也没落下,资源释放做得比较到位,不用怕内存泄露。还有一些性能优化,比如延迟加载,数据多的时候不会一次性卡死。
设计得还挺通用的,理论上只要你换个数据库驱动,稍微适配一下,就能跑在别的数据库上。源码都在QueryResult.cpp
和QueryResult.h
里,看一眼就明白。
如果你经常跟数据库打交道,又不想每次都手动那些重复操作,那这套封装你真的可以考虑试试,挺省事的。