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