• 七月份,工作总结


    在公司也做了有快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>
    

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

  • 相关阅读:
    改变原数组的filter
    fireEvent2
    Ajaxを勉強しよ
    javascript 地图
    fillZero函数
    window.onerror
    とある要素以下にある textNode で一致する textNode を XPath で高速に取り出す
    判定是否为表单元素
    Django中判断用户是否登陆
    【 如果你和我一样在一栋33层大厦的27层工作,在这栋大厦里发生了火灾,那么你该怎么办? 看看也许会保住你的性命!!!】
  • 原文地址:https://www.cnblogs.com/wcyBlog/p/3897379.html
Copyright © 2020-2023  润新知