Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
分布式架构
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
如何在java中进行数据集定位和过滤?
05-10-11
萧风
似乎ResultSet等都不支持这些在delphi中轻松做的事情
如DataSet.locate()
DataSet.Filter = ...;
DataSet.Filtered = true;
是否有变通的方法??
banq
2005-10-11 17:02
Java不象Delphi是一个以数据库为主角的系统,Java系统是一个以中间件对象构件为主角的系统,数据库是配角。
根据上述定位,数据定位和过滤应该在中间层业务层实现,使用Collection方便完成,而不是依赖数据库在数据库端加工!
萧风
2005-10-12 10:19
对于具体如何使用Collection我还有一些问题
1,我建立了一个Item,这个Item类同的ROW,将之一行一行插入到Collection(我使用的是ArrayList,当然用Vector应该也差不多)中,
但如果进行locate定位的话,那就得一个Collection里进行循环,这样的效率恐怕要比那个数据集的locate差的多
2,delphi对于数据库开发确实是很简便,但对于建立中间层来说,也是一个不旬的选择,并不只是用于c/s开发
banq
2005-10-12 11:22
那就使用HashMap,可根据主键快速定位locate那个数据,HashMap和List也可以结合考虑,当然排序就要用到sortedMap了。
Collection操作对象都是基于内存的,而且离前台最近,中间不会隔一个数据库连接。
而使用数据库来实现,则两台机器之间数据库连接或连接池都是性能开销,数据库的大数据磁盘检索哪有Collection的内存检索快,无论你使用什么检索。
所以业务计算依赖数据库计算是没有可伸缩性
扩展性
的,死路一条。
萧风
2005-10-12 12:23
同意版主的意见,但有时并不是根据一个键值来定位一条数据,而是根据多个键值来定位,这样是不是HashMap或List就无能为力了?
我所说的意思也不是通过与数据库的直连来进行数据的筛选,也是通过内在表的方式来筛选.
banq
2005-10-13 10:50
一个数据是一个对象,每个对象都有唯一的主键ID,杜绝多键,这个唯一主键是系统内部的,可不暴露给用户,这样就发挥HashMap能力了。
HashMap其实是一个内存表,说大了,就是对象缓存的基本机制。
关系数据库
delphi
缓存设计
伸缩性Scalable