|
回复 #9 piliskys 的帖子
哈哈,不是打击不打击的事情,我认为你根本就没有看明白我说的是什么,我强调的是sql的写法,动态参数,我提供的是对sql语句的动态处理,
查询条件不定,最终执行的sql是不一样的,你说的跟我说的不是一码事,我强调的是动态以及sql和代码的分离,你确信明白了再提打击!不要没有看明白什么意思,上来就搞什么打击,这样是不对的!
请看这句:老兄你说的支持数组,请看文章调用方法那块,其实调用时及其简单的就是一句话!你说的对返回数据的封装,我告诉你我提供了3种方式:
在调用时提供了多态方式参数有voClass、rowCallBackHandler(反调自己实现接口,spring jdbcTemplate中有类似实现,请参看),如果这两个参数都为null就返回数组集合,我想这应该完全满足要求了吧?要快速对象封装就用voClass,比较复杂的封装就自己实现RowCallBackHandler接口,如果不需要封装就什么也不传,直接返回ResultSet放到List中的结果,哈哈这里不多阐述了,我非常希望大家能够认真阅读后再提出自己的见解,不要仅看一眼就随意评价,好坏自有分说,我乐意听到不同的声音,但没有看明白意思就评说我认为缺乏严谨的做事态度,对我的文章也不够尊重!
select t.*
,t1.NAME
from OA_CAR_REGIST t,HR_STAFF_INFO t1
where 1=1
and t1.STAFF_NO=t.CHAUFFEUR
and t.IS_ACTIVE=?
#[and t.CAR_MODE like ? ] <!--?对应的值为null 这一块就没有了,这不是spring里面所提供的吧--->
#[and t1.NAME like ? ]
#[and t.REGIST_DATE>=? and t.REGIST_DATE<= ? ]
#[and t.DISABLE_DATE>=? and t.DISABLE_DATE<= ? ]
#[and t.ASSET_TYPE= ? ]
这样的sql判断参数值,#[]中的内容有可能会被切除,也许最终的sql是:
select t.*
,t1.NAME
from OA_CAR_REGIST t,HR_STAFF_INFO t1
where 1=1
and t1.STAFF_NO=t.CHAUFFEUR
and t.IS_ACTIVE=?
或
select t.*
,t1.NAME
from OA_CAR_REGIST t,HR_STAFF_INFO t1
where 1=1
and t1.STAFF_NO=t.CHAUFFEUR
and t.IS_ACTIVE=?
and t.ASSET_TYPE= ?
要是老兄果然是没有看明白,那我真为自己叫屈,我真是服了,太多人都是对待事情是不踏实严谨,你还算不错了,javaeye上的有一个上来就声称写sql就是过时(当然我的这个也是支持hql等等的,这小子根本就没有明白我所阐述的一个机理),还有就是把别人想的特土,hibernate的条件查询还有this.getHibernateTemplate.get(Id)之类的别人也不知道一样,我当时还特别在文章头上说了,简单的做法不多强调,因为简单的大家做法都差不多,写在代码中也无所谓!更有甚者以用了hibernate annotation就标榜自己先进!我真服了!
[ 本帖最后由 zhongxuchen 于 2009-5-5 00:59 编辑 ] |
|