论坛首页 Java企业应用论坛

贴篇旧文章:一种用类来代替SQL语句的方法。

浏览 18569 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-14  
mubuc 写道
如果有子查询,怎么拼sql?


请看倒数第二张图.
0 请登录后投票
   发表时间:2006-12-14  
haiter 写道
简单一点回答你:
1、SQL效率不高,不能很好的利用数据库的SQL缓冲机制,
建议改为insert dd(name) value(?)
2、如果有多表关联查询,通过这种方式拼字符方式,不好


1、SQL效率不高,不能很好的利用数据库的SQL缓冲机制,
建议改为insert dd(name) value(?)

这个是否有笔误啊?

2、如果有多表关联查询,通过这种方式拼字符方式,不好

SQL中用上别名能有所改善.
0 请登录后投票
   发表时间:2006-12-14  
finalbone 写道
对于运行时动态条件查询 可以建一个sql映射表 就像数据字典一样
根据需要从sql字典中拼装完整的sql 其实不封装更加灵活


那写的SQL多了点吧.

PS:头像的小狗很可爱,有没有其它图片啊?
0 请登录后投票
   发表时间:2006-12-14  
你有没有考虑过SQL语句在不同数据库中的兼容性问题?而且SQL注入漏洞的安全性,String拼接的效率,恐怕都没有考虑吧,请参考一下Hibernate中的实现,貌似PoEAA也有一个类似的东西,忘了,自己去看书
0 请登录后投票
   发表时间:2006-12-14  
比起hibernate的封装差太多,自己练手学学数据库倒是不错的做法,还有上面那位基于hibernate做的,hibernate本身有这样一套查询机制,项目中在其上做个扩展不就OK了,自己这样搞了下,限制太多,很多功能都不见了,更别说效率等方面了,至于sql的跨数据库 看看hibernate的hql怎么生成sql应该有所帮助的吧
0 请登录后投票
   发表时间:2006-12-14  
刑天战士 写道
你有没有考虑过SQL语句在不同数据库中的兼容性问题?而且SQL注入漏洞的安全性,String拼接的效率,恐怕都没有考虑吧,请参考一下Hibernate中的实现,貌似PoEAA也有一个类似的东西,忘了,自己去看书


头像能否换换啊?太吓人了,尤其是深夜看到.

SQL注入漏洞我已经意思到了,前面的回帖我也说明了.这种方式能有效防范SQL注入攻击,比在对输入做Check要强.

回帖

引用
TO aystnd:

读完了,感觉比我想得细,也比我写得细,很好.

突然意思到一个问题,你的putCondition函数,我的RefreshCondition函数都应该加入对Sql注入攻击的防范和检测,如果发现了类似代码应该立即抛出异常退出后继执行,否则容易给客户造成不可估量的损失,那时候就麻烦大了.

如果加入后,以前对于Statement访问DB的方式的SQL不方便防范 SQL注入攻击的问题就可以写在函数内部,对外封装好以后其它程序员就不需要再考虑这个问题,这也许就是我们的代码最大价值所在,你认为呢?

0 请登录后投票
   发表时间:2006-12-14  
jianfeng008cn 写道
比起hibernate的封装差太多,自己练手学学数据库倒是不错的做法,还有上面那位基于hibernate做的,hibernate本身有这样一套查询机制,项目中在其上做个扩展不就OK了,自己这样搞了下,限制太多,很多功能都不见了,更别说效率等方面了,至于sql的跨数据库 看看hibernate的hql怎么生成sql应该有所帮助的吧


Hibernate用的少,以后还是会剖析一下的,谢谢提醒.
0 请登录后投票
   发表时间:2006-12-14  
认真看完每个帖子。发现想办法去解决问题非常好。
但肯定没有办法100%完美解决。如果我花费20%的精力解决了80%的问题,已经很知足了。
如果非要强调去100%解决,那是否太过牵强了。
解决问题在于解决大多数常见的问题,剩下不常见的,我自己灵活解决一下,不是更好。
0 请登录后投票
   发表时间:2006-12-14  
有思想的芦苇 写道
finalbone 写道
对于运行时动态条件查询 可以建一个sql映射表 就像数据字典一样
根据需要从sql字典中拼装完整的sql 其实不封装更加灵活


那写的SQL多了点吧.

PS:头像的小狗很可爱,有没有其它图片啊?


呵呵 小狗是我养的 blog里还有一张

全面推广这种应用对项目来说提高了风险 对新成员意味着提升学习曲线

在需要特殊处理的地方用一下还不错 但是重新封装的话似乎又觉得投入产出比不合算了

如果想继续发展的话 只能更加重量级的封装 考虑多数据库支持以及很多细节问题...

其实建立sql映射字典很方便灵活 实现也简单 而且可以解决sql注入问题
0 请登录后投票
   发表时间:2006-12-14  
finalbone 写道
有思想的芦苇 写道
finalbone 写道
对于运行时动态条件查询 可以建一个sql映射表 就像数据字典一样
根据需要从sql字典中拼装完整的sql 其实不封装更加灵活


那写的SQL多了点吧.

PS:头像的小狗很可爱,有没有其它图片啊?


呵呵 小狗是我养的 blog里还有一张

全面推广这种应用对项目来说提高了风险 对新成员意味着提升学习曲线

在需要特殊处理的地方用一下还不错 但是重新封装的话似乎又觉得投入产出比不合算了

如果想继续发展的话 只能更加重量级的封装 考虑多数据库支持以及很多细节问题...

其实建立sql映射字典很方便灵活 实现也简单 而且可以解决sql注入问题



这张吧,真有意思,什么品种啊?条件合适我也买一只.

sql映射字典我想想,有结果我们再探讨.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics