DataRow与Map的区别

最后更新:2023-10-18 19:29:50 | 状态:未完成
DataRow是继承自Map所以Map有的方法DataRow都有,
并且对Map进行了改造和扩展,主要有:
改造了get/set方法,在get/set执行前会先检测key,以实现忽略大小写、下划线、驼峰等格式,效果就是get("userid") get("userId") get("user_id") get("USER_ID") 都会返回一样的结果。

扩展了get("复合key")如 get("${user_id}:${user_name}") 效果等同于 get("user_id") + ":" + get("user_name")
以及get(key1,key2,key3),效果是依次提供key1,key2,key直到第一个值不为空


扩展了附加属性,即在保存数据时附加属性不参与SQL
如果数据来源于数据库查询会扩展metadata其中包含了列的数据类型、长度等详细信息
添加了getString() getIn() getLong() getDate() ...等方法
添加了对xml/json的支持以及与实体类相互转换
添加了批量操作、批量格式化
通过Tag的形式添加了对超表子表的支持



所以性能上要比Map慢的多,但功能上会更强
在大数据量操作时尽量不要用DataRow,即查询是要用List<Map> maps = service.maps()而不要用DataSet set = service.querys()
最近更新 搜索 提交