七月份,工作总结

在公司也做了有快2个月了,乘现在有点空闲时间,就把这段时间内学到的一些知识,心得写下来,也好以后可以方便回忆查询。

在做项目的过程中,遇到的异常都能自己解决,不懂的就网上百度,网上百度这个很好,有很多知识,在此很感谢那些共享资源

的朋友,因为你们的分享,才让我们这些新手对程序更有信心。以前我有个很不好的习惯,遇到困难,解决不了的,就容易放弃,

或者请别人来解决,不懂就问人,而不会自己先想办法解决,这样会对开发越来越没兴趣;后来在看程序员的修养这本书之后,我

把这个习惯给改了,遇到异常,首先是想想它是什么异常,为什么会报出这样的异常,自己想想办法,自己想不出来也不要硬想,

然后上网百度,看看有没有哪个人遇到同样的问题,有没有解决方法,有就好解决,解决之后还要理解为什么,再次遇到了该怎么解决,

最后实在找不到解决的方法,问问前辈能不能解决,最后就是把遇到的异常记录到自己的异常库里面,以便以后遇到同样的问题,有解决

的方法。

做项目的过程中,大部分都是查询,条件查询,排序查询,模糊查询,(左,右)外连接,这些代码大部分都是重复的,没什么技术含量

但是还是花费了我很多时间,原因就是在工作量大,而且有时候会遇到一些细节问题,都需要解决,所以就比较麻烦。但是我也在其中学到

了不少东西。

第一点:无论做什么事情,都能静得心来,不急不躁

第二点:前期做好准备,一旦下手,就能成竹在胸

第三点:后期做好总结,把以前一些不经意漏掉的细节补回来,梳理一遍做到心中有数。

 

公司的项目其中一个模块是我负责的,主要负责的就是根据条件查询:用的是SSI框架iBatis2.3

在jsp页面,有个很好的方法,使用jq写的,非常好,它能是查询的时候,进行异步刷新,对数据库查询的效率有很大的提高。我对于jq不是很熟悉

所以很佩服写出这个方法的人。

  <form  method="post" name="hiddenform" class="hiddenform">
      <input type="text" name="cn.coid"  id="coid"/>
      <input type="text" name="are.aid"  id="aid"/>
      <input type="text" name="county"  id="county"/>
      <input type="text" name="btype.buildtype" id="buildtype"/>
      <input type="text" name="sortsign" id="sortsign" value="0"/>
      <input type="text" name="pageNo" id="pageNo" value="1"/>
    </form>
<script type="text/javascript"> function changeValue(obj,val){ $("#"+obj).val(val); if(obj=="pageSize")$("#pageNo").val('1'); if(obj=='hid'){ $("#coid").val(''); $("#aid").val(''); $("#county").val(''); $("#buildtype").val(''); $("#sortsign").val(''); $("#pageNo").val(''); } searchHouseList(); //document.hiddenform.submit(); } searchHouseList(); function searchHouseList(){ var p={ 'cn.coid':$("#coid").val(), 'are.aid':$().val("#aid"), 'pageNo':$("#pageNo").val(), 'county':$("#county").val(), 'buildtype':$("#buildtype").val(), 'typename':'车位', 'forlive':'是', 'sortsign':$("#sortsign").val() }; $.post("<%=basePath%>carport/queryPropertyCarport",p,function(msg){ var strs=msg.split("|"); msg0=strs[0]; msg1=strs[1]; $("#tabWrap").empty(); $("#tabWrap").append(" <a class='tabFocus' >车位新房房源</a><span class='findResult' id='number'>找到<strong>"+msg1+"</strong>条房源</span>"); $("#mainD").html(msg0); }); } window.onload=function(){searchHouseList();}; </script>

 在controller层

public void queryPropertyCarport(@Valid PropertyProject property,@Valid PropertyRoom room,@Valid PropertyHousemodel house,
			@Valid PropertyProfeature profeature,@Valid PropertyBuildtype buildtype,@Valid PropertyInformation information,
			@Valid int pageNo,@Valid int sortsign,PrintWriter out){
		
		StringBuffer sb = new StringBuffer();
		switch(sortsign){
			case 0:sb.append("");break;
			case 1:sb.append(" ORDER BY info.price ASC");break;
			case 2:sb.append(" ORDER BY info.area asc");break;
			case 3:sb.append(" ORDER BY info.postime DESC");break;
		}
		
		//查询主表信息
		Pages<PropertyProject> pages = projectService.findAllProperty(property, room, house, profeature, buildtype, information,pageNo, sb.toString());
		
		sb = new StringBuffer();
		for(int i = 0 ; i < pages.getPageList().size() ; i++){
			//根据ID查询info表
			PropertyInformation infor = projectService.findProjectInfoByID(pages.getPageList().get(i).getProid());
			//根据info表ID查询exp表
			PropertyExpansion expan = projectService.findProjectExpanByID(infor.getPrid());
			
			
			sb.append("<li class=\"item itemNew\">");
			sb.append("<div class=\"photo\"><a href=\"javascript:void(0)\"><img src=\"/search/images/photo.jpg\" /></a></div>");
			sb.append("<div class=\"detail detailNew\">");
			sb.append("<p class=\"pNewOne\"><span class=\"pNewOneL\">"+infor.getProname()+"</span><span class=\"pNewOneR\">["+infor.getCounty()+"-"+infor.getTypename()+"]</span></p>");
			sb.append("<p class=\"pNewTwo\">开发商:"+infor.getDevelopename()+"</p>");
			sb.append("<p class=\"pNewThree\">地址:"+infor.getPadress()+"</p>");
			sb.append("<p class=\"pNewFour\"><span class=\"pNewFourL\">热线:<strong>"+infor.getHotline()+"</strong></span><span class=\"pNewFourR\">资料:"+expan.getAdvantage()+"</span></p>");
			sb.append("</div>");
			sb.append("<div class=\"mainR\">");
			sb.append("<p class=\"pFirst\"><strong>"+infor.getPrice()+"</strong> 元/㎡</p>");
			sb.append("</div>");
			sb.append("</li>");
			System.out.println("============OK===============");
		
		}
		out.println(sb.toString()+"|"+pages.getTotalCount());
		out.flush();
		System.out.println("------------查询完毕!--------------");
	}
	

 service层

//查询所有表信息,通过外连接
	public Pages<PropertyProject> findAllProperty(PropertyProject property,PropertyRoom room,PropertyHousemodel house,
			PropertyProfeature profeature, PropertyBuildtype buildtype, PropertyInformation information, int pageNo, String sortsign){
		Pages<PropertyProject> pages = new Pages<PropertyProject>(findProjectCount(property, room, house, profeature, buildtype, information));
		pages.setPageList(projectDao.findAllProperty(property, room, house, profeature, buildtype,information,pages.getStart(pageNo),pages.getPageSize(),sortsign));
		return pages;
	}

 dao层

//查询所有表,通过外连接查询
	public List<PropertyProject> findAllProperty(PropertyProject property,PropertyRoom room, PropertyHousemodel house,
			PropertyProfeature profeature, PropertyBuildtype buildtype, PropertyInformation information,int start,int pageSize,String sortsign){
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("property", property);
		map.put("room", room);
		map.put("house", house);
		map.put("profeature", profeature);
		map.put("buildtype", buildtype);
		map.put("information", information);
		map.put("start", start);
		map.put("pageSize", pageSize);
		map.put("sortsign", sortsign);
		return getSqlMapClientTemplate().queryForList("findAllProperty", map);
		
	}

 sql-xml文件

<!-- 查询主表和其他表的信息,通过左外连接 -->
	<select id="findAllProperty" parameterClass="Map"
		resultClass="PropertyProject">
		select distinct pro.proid , pro.* from property_project as pro
		LEFT JOIN property_room as ro ON (pro.proid=ro.proid) LEFT JOIN
		property_housemodel as ho ON (ho.proid=pro.proid) LEFT JOIN
		property_profeature as prof ON (pro.proid=prof.proid) LEFT JOIN
		property_buildtype as bt ON (pro.proid=bt.proid) LEFT JOIN
		property_information as info ON (pro.proid=info.proid)
		<dynamic prepend="WHERE">
			<isNotEmpty prepend="AND" property="property.typename">
				<isEqual property="property.typename" compareValue="居住">
					(pro.typename="住宅" or pro.typename="公寓" or pro.typename="别墅")
				</isEqual>
				<isNotEqual property="property.typename" compareValue="居住">
					pro.typename like '%$property.typename$%'
				</isNotEqual>
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="room.room">
				<isEqual property="room.room" compareValue="5">
					(ro.room=5 or ro.room=6 or ro.room=7 or ro.room=8 or ro.room=9 or ro.room=10)
				</isEqual>
				<isNotEqual property="room.room" compareValue="5">
					ro.room=#room.room#
				</isNotEqual>
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="house.housemodel">
				ho.housemodel=#house.housemodel#
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="profeature.profeature">
				prof.profeature=#profeature.profeature#
			</isNotEmpty>
				<isNotEmpty prepend="AND" property="buildtype.buildtype">
				bt.buildtype=#buildtype.buildtype#
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="information.salestate">
				info.salestate=#information.salestate#
			</isNotEmpty>
			<isNotEmpty prepend="AND" property="information.county">
				info.county like '%$information.county$%'
			</isNotEmpty>
			 $sortsign$  limit #start#,#pageSize#
		</dynamic>
	</select>

 以上就是我这些时间里学到的一些总结,希望以后更加努力,更上一层楼。

 

posted @ 2014-08-07 15:56  吴小雨  阅读(680)  评论(0编辑  收藏  举报