substr在dao层做,还是在service层做?

nuoboxgx 2010-01-19 07:23:32
如题

在DAO层写SQL时候直接用数据库的substr函数
和在service层里用java的substr函数

两者效率的高低?两者的可移植性?哪个更有利于分层?

期望高手分析下?
...全文
237 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinghun8leech 2010-01-22
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 nuoboxgx 的回复:]
请把贴子地址贴出来?
谢谢
[/Quote]

在这
http://topic.csdn.net/u/20091129/19/de9a1ed7-2693-4803-a926-ed0b3943b770.html
crazylaa 2010-01-22
  • 打赏
  • 举报
回复
?
nuoboxgx 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 dinghun8leech 的回复:]
补充一下,关于此类字符串操作在分层设计上仍旧是推荐搁在service层中,与我在2楼的回帖一个意思。
昨天看了一篇有关此类操作应该放在java中还是数据库中的讨论,就性能上讲,常见的数据处理可以放在数据库中,逻辑操作就不适于放在数据库中,性能负载要平衡,数据库负载不大时可以考虑这么做,还是要看实际情况。
[/Quote]

请把贴子地址贴出来?
谢谢
dinghun8leech 2010-01-20
  • 打赏
  • 举报
回复
补充一下,关于此类字符串操作在分层设计上仍旧是推荐搁在service层中,与我在2楼的回帖一个意思。
昨天看了一篇有关此类操作应该放在java中还是数据库中的讨论,就性能上讲,常见的数据处理可以放在数据库中,逻辑操作就不适于放在数据库中,性能负载要平衡,数据库负载不大时可以考虑这么做,还是要看实际情况。
nuoboxgx 2010-01-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yetaodiao 的回复:]
多么?


放数据库里吧
[/Quote]

多乎哉不多也

主要是为了分层,其次为了效率,应该怎么做?
  • 打赏
  • 举报
回复
奥,,来学习的。
我其实很低调 2010-01-19
  • 打赏
  • 举报
回复
至于你在什么地方做,这个如果你的数据只是单纯的为了截取字符串,哪么肯定用java的,毋庸置疑,,如果你要用到截取字符串之后再数据库里面进行一些逻辑操作,哪么就在数据库里面操作了。
feiyangdesky 2010-01-19
  • 打赏
  • 举报
回复
jf
我其实很低调 2010-01-19
  • 打赏
  • 举报
回复
数据库里面的 substr 效率肯定高,,至于移植性,肯定是java的substring要高了。。因为数据库有些不是substr而是substring,。
nht1028 2010-01-19
  • 打赏
  • 举报
回复
service吧,个人感觉
Johnson_Hong 2010-01-19
  • 打赏
  • 举报
回复
看具体情况而定,这种情况,我一般放在service里做
例如论坛标题forum.title
标题太长的时候需要显示20个字+。。。

我在dao里得到对象,标题是完整的,在service里对dao的结果做一下截取的处理;
有些时候需要返回的对象标题是完整的,那么在service的这些方法里面,就不做这个截取的操作。

dao接口相对比较稳定,service方法则加工利用dao去处理逻辑
岁月之梦 2010-01-19
  • 打赏
  • 举报
回复
我感觉是service 了 ,这样的话,后面维护就不懂数据库相关东西了,如果放dao老跟持久层关联,感觉不好!一家之谈...呵呵
colin_pxx 2010-01-19
  • 打赏
  • 举报
回复
其实dao层可以不用
studyM 2010-01-19
  • 打赏
  • 举报
回复
用java的substr做截取 虽然SQL的效率可能会高一点点点 但是移植性就低低低低了
nuoboxgx 2010-01-19
  • 打赏
  • 举报
回复
大家也是各抒己见啊

有大牛来说说吧?

最主要是对分层有利
java的substr
oracle的substr
db2的substr
各不相同

嘿嘿,所以我想直接从数据库取原字段,用java的substr做截取
这样就和数据库的substr分开了

也就是substr放在service层做

大牛们,给点建议啊?
jiayi_it 2010-01-19
  • 打赏
  • 举报
回复
现在我很喜欢用逆向工程,不知道好不好?
  • 打赏
  • 举报
回复
多么?


放数据库里吧
不吃鱼的熊 2010-01-19
  • 打赏
  • 举报
回复
放DAO层吧,效率高!
crazylaa 2010-01-19
  • 打赏
  • 举报
回复
看需求来了。
比如本来50~100字,只需要显示20字,则用java。
如果是查询条件,则还是建议用数据库来做,数据库上可以建相应的函数索引。
但你这里在DAO层写sql,无所谓了,反正换个数据库,不同的函数也不仅仅是substr了。
mengxq 2010-01-19
  • 打赏
  • 举报
回复
是可以无所谓的
加载更多回复(7)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧