??xml version="1.0" encoding="utf-8" standalone="yes"?>SELECT a.TAXPAYERID TAXPAYERID$0, a.INDEPOTYEAR INDEPOTYEAR$2,
SUM(a.TAXFINAL) SUMTAXFINAL$1
FROM F_LVY_LEVYINPUTYEARHISTORYDATA a
WHERE substr ( a.TAXPAYERID ,1 , 1 ) 'T' and a.indepotyear='2006' GROUP BY a.TAXPAYERID, a.INDEPOTYEAR having SUM(a.TAXFINAL) >=1000000 W一ơ运行?357条记录,然后接着q行变?359Q此为正数Q,到网上找了下Q没有找到原因, 最后把substr ( a.TAXPAYERID ,1 , 1 ) 'T' 改ؓ a.TAXPAYERID not like 'T%'没有问题Q把上面sql改ؓ
SELECT a.TAXPAYERID TAXPAYERID$0, a.INDEPOTYEAR INDEPOTYEAR$2, SUM(a.TAXFINAL) SUMTAXFINAL$1 FROM F_LVY_LEVYINPUTYEARHISTORYDATA a WHERE a.indepotyear='2006' GROUP BY a.TAXPAYERID, a.INDEPOTYEAR having SUM(a.TAXFINAL) >=1000000 and substr ( a.TAXPAYERID ,1 , 1 ) 'T'
]]>
是以上一些代码,单多了吧Qreturn一个字W串p了,感觉q有点像webwork?到此完了吗,有没
有什么还没有做呢Q对了,q样的话Q我们定义的Action都成无会话的bean了,所以request是要得到?/p>
Q很多情况下的url?**action.do?id=cctv,而且一般是pȝ都是把用L信息攑օsession中的Q所?/p>
request是强烈要求要q给我们的,好,那我们来重构下formbean和action吧,以下我们用BaseForm,?/p>
BaseAction来定义,两个c都攑֜同一个包?/p>
到此ؓl束Q可能有Z问,那还有response呢,response的话Q一般出现在内部跌{{情况,感觉?/p>
的比较少Q所以在此就不把它给大家了,如觉得一定要得到的话Q那prequest一栯行设|吧Q不q?/p>
万事都应该有个度Q自p量?br />
2Q?public int deleteByVO(Object obj)//q回删除的记录数
注:如果未对obj讄M条g不会进行删除操作(因ؓ个h认ؓq一般是不可能的Q比较危险,所以加以控Ӟ
E序Q删除姓 ?的记?br /> TbPerson tp =new TbPerson();
tp.setPerName("?");
ds.deleteByVO(tp);
----------------------------------------------
E序Q删除年龄大于等?19岁的记录
TbPerson tp =new TbPerson();
tp.setPerAge(new Long(19),">=");//所有双参数Ҏ都是Z些条仉择而用Q后面一参数是用来设操作W的 > < >= <= !=,q些Q方便吧
ds.deleteByVO(tp);
----------------------------------------------
E序Q删除年龄ؓI的记录
TbPerson tp =new TbPerson();
tp.setPerAge(null);
ds.deleteByVO(tp);
----------------------------------------------
3 public int update(Object obj)
此操作必d主键q行讄Q否则报错,讄其它字段属于为更新字D,其它字段未设|也会报错,说明没有可更新的字段Q?br />E序 ?br /> 4 public int update(Object src,Object tar)//两对象必dc?代表同一?
此操?以前一对象做ؓ条gq行扚w更新后一对象讄的?条g如是字符串可讄?Q条件对象也可加操作W,使用所有双参数讄都相同,其它可设|nullQ对''字符串不处理
E序 ?br /> 5 public boolean insert(Object obj)//未进行设|的字段为null
E序 插入一个叫 刘d?q龄?8的记?br /> TbPerson tp =new TbPerson();
pt.setPerName("刘d?);
pt.setPerAge(new Long(38));//age为Long型的?br /> ds.insert(pt);
----------------------------------------------
E序 插入一个叫 |拿?的,q龄未知
TbPerson tp =new TbPerson();
pt.setPerName("|拿?);
ds.insert(pt);
----------------------------------------------
6 public List selectAll(Class class1)
q回所有记录(但此处ؓ考虑E序的效率,讄了一个最大数Q可参看原文件中定义的MAX_SIZE可进行更改,
E序 查出所有tb_person表的记录
List list = ds.selectAll(TbPerson.class);//也简单吧
-----------------------------------------------
7 public void selectByPK(Object obj)
Ҏ主键查找记录 Q这个是无返回值的Q返回的是本n的这个objQؓ了省点内存,不用多new一个对象,而且实现的话主键已经讑֥Q只要设其它字段Q而且个h认ؓq样更好用,如果一个表无主键,那么查出来的是数据库的W一条记录,利用 rownum=1实现Q而不是查出的W一条,最大程度地提高数据库的效率Q?br />E序 查出名叫 刘d华的记录
TbPerson tp =new TbPerson("刘d?);
ds.selectByPK(tp);
然后 q个tp是一个与数据库主键ؓ刘d华的记录Q可以用它了
-------------------------------------------------
8 public List selectByVO(Object obj)
此方法跟上面的deleteByVO的用基本相同,q回值是vo的一个系列,
有一点不同的是,deleteByVO不设|Q何查询条件将不会做操作,而此Ҏ不设|Q何条件的话就会查出所有的(个h认ؓ查询是无危害性的Q要查就查吧)
E序 参?deleteByVO
9 public List selectByVO(Object obj, int i, int j)
此方法是上一Ҏ的扩充,主要是用于分|作,
E序 查姓 ?的第11条记录到20?br /> ds.selectByVO(new TbPerson("?"),11,20);//呵呵Q感觉这h点别?br />本应?TbPerson tp =new TbPerson();
tp.setPerName("?");
ds.selectByVO(tp,11,20);//效果一P
--------------------------------------------------
10 public int sqlExcute(String s, List list)
q个是用于直接调 sql语句的操作,主要是执行一些更斎ͼ删除操作Q?list是按条仉序设|的参数集,PreparedStatement的操?br />E序 ?br /> 11 public List selectBySQL(String s, List list)
q个是用于直接调 sql语句的操作,执行查询操作Q?list是按条仉序设|的参数集,PreparedStatement的操?br />return List 含map的list,key为字D全部小?br />E序 ?br /> 12 public List selectByQuery(String s, List list)
q个是用于直接调 sql语句的操作,执行查询操作Q?list是按条仉序设|的参数集,PreparedStatement的操?br />return List 含map的list,key为字D全部小?br />E序 ?br /> 13 public List selectByQuery(String s, List list,int i,int j)
同上Q但主要是ؓ了分|作,
throws DAOException;
public void close()throws SQLException;
数据库联接关?br />关于事物提义及回滚请使用ConnectionUtil.currentConnection("piliskys")的操作?br />此程序支持在控制台显Csql语句Q可以在配制文g中设|是否显C,具体操作参看包中的说明?br />========================================================================
当然个h的能力是有限的,如果你认应该实现什么功能,E序哪方面不如h意,本h只是按照自己的观点,站在一个编E者的角度考虑问题Q不之处可能很多,希望多提见意和徏议,E序只是l本行测试,可能不是很全面,希望共同完善?br />关于如何部v于程序,包中有说明?br />注意事项Q不支持复合主键作ؓ其它表的外键,下次改进吧?/p>
最后:请尊重他人成果,谢谢您的支持Q本人邮?a href="mailto:piliskys@itpub.net">piliskys@itpub.net希望得到你的意见和徏议?br />========================================================================
此处下蝲原程?a href="/Files/piliskys/jdbcutil.rar">http://www.tkk7.com/Files/piliskys/jdbcutil.rar
1Q用户名唯一性检,实例Q只要照着上面做就没有问题的?br />
2Q做一个连动的下接框,由a下拉框得到b下拉框,当时L用一个数l返回,但不知道怎么用,如果用responseTextq回的话Q可能要用javascript解析字符Ԍ然后拼成下拉框的optionQ感觉可能比较麻烦,因此用responseXMLq回Q先在本地徏了个cctv.xml文gQ然后用send_request('/cctv.xml');时可以在本页面得C拉框Q然而用send_request('/cctv.jsp');׃能成功,cctv.jsp同样是生成cctv.xml一L面。但得到http_request.responseXML中的元素L0个,真搞不懂。思考:
1Q当看到google中的查找带出相应值来ӞZ么会q么快啊Q真的是做的不错Q不知道它的机制是如何做的?br />
2Q对于一些多U连动下拉框的实玎ͼ一般来说都是把所以数据初始化攑օ面Q然后由javasrcipt来控制显C,q样对于一些框架及操作数据库来_只要一ơ数据库q接Q只要一ơ蟩转,而采用ajax技术的话,可能存在数据库多ơ连接和框架的多ơ蟩转,因此Q性能的优劣也要接情况而定?br />
3Q感觉ajax面代码q多Q感觉复用较难,另外不知道能否返回一个数l或集合Q利用生成xml然后对其q行解析的话Q效率上是否有所Ơ缺?br />
ajaxq是初步了解Q望得到此方面的人的帮助?