个人开发总结
让textarea和附近的文字居中对齐。 textarea {display:inline-block;vertical-align:middle;} select onchagnge 弹出自己的文本值,id是val() onchange='alert($("option:selected",this).text())' $("#msgSpan").fadeIn("slow"); setTimeout('$("#msgSpan").hide("slow");',5000); 返回表格行 或 列的索引 td是列,tr是行: <script type="text/javascript"> $(document).ready(function(){ $("table td").bind("click",function(){ var index = $(this).parent().index(); alert(index);//表示所在行的索引。如果要的是列的索引,把parent()去掉 }); }); </script> 返回 closest指定元素 最近的 table 元素 var tableId = $('input[class="daobubili"]').closest("table").attr("id"); 获得表格索引 index(); jquery找到指定表格的td列 $("#tab tr").find("td:eq(7)"); 特殊的表格模板 记得设置thead这样遍历 tbody tr就不会有标题行了。 <table> <thead> <tr> <th style="display:none">隐藏</th> <th width="5%">序号</th> </tr> </thead> <tbody> <tr moban style="height: 33px;display: none" > </tr> <tbody> </table> jquery让页面滚动条top,滚动条 顶部 $(document).scrollTop(0); 验证 datatype="/^\d+(\.\d+)?$/" validatform验证是否是数字 支持小数点 datatype="d" 貌似支持小数 js函数验证方式:验证是否是数字,支持小数,负数。 var regExp =/^\-?[0-9]+(.[0-9]+)?$/; if(!regExp.test(str.val())){ str.val("0"); } 可以使用 http://commons.apache.org/ apche commons包下的工具类方便操作,比如文件copy、上传,bean属性copy。 function jisuan(){ var jiaoqiangxianjine = $("#jiaoqiangxianjine").val()!=""?$("#jiaoqiangxianjine").val():"0"; var shangyexianjine = $("#shangyexianjine").val()!=""?$("#shangyexianjine").val():"0"; var jiaoqiangxianjine3 = $("#jiaoqiangxianjine3").val()!=""?$("#jiaoqiangxianjine3").val():"0"; var abc=parseFloat(jiaoqiangxianjine)+parseFloat(shangyexianjine)+parseFloat(jiaoqiangxianjine3); $("#insurancemoney").val(abc.toFixed(2)); } sqlserver 复制表结构(可以含有数据 或 只要表结构) SELECT * INTO bb FROM aa(NOLOCK) WHERE 1=0 (function($) { var plugName = "teamMingXi"; var teamMingXi = { open : function(type) { var basepath=this.basePath; var winTitle=this.winTitle; var url=this.url; var widthVal = "1190px";//定义全局默认宽高 var heightVal = "300px"; var teamCheliangId = this.teamCheliangId; if(type=="createWin"){ createwindow(winTitle, basepath+url,function(){//保存之后的回调 },{width:widthVal,height:heightVal}); } } }; teamMingXi.basePath=""; teamMingXi.teamCheliangId=""; teamMingXi.url=""; teamMingXi.winTitle=""; eval("window."+plugName+"=teamMingXi;"); })(jQuery); 方法调用: function open11(target){ teamMingXi.basePath="<%=basePath %>"; teamMingXi.teamCheliangId="402881e3411f39f301412041fb6a0021"; teamMingXi.open(target); } 检测某元素是否含有某属性 if(typeof($("#aid").attr("rel"))=="undefined") 声明js对象 var urlParams = {}; 计算class 求和: (function($) { var plugName = "mathutil"; var mathutil = { addUp : function($obj) { var result=0; $obj.each(function (i,n){ var $n=$(n); var num=Number($n.val()); if(!isNaN(num)){ result+=num; } }); return result; } }; window.mathutil=mathutil; })(jQuery); 调用: var yifu=mathutil.addUp($(".yifu")); $("#yifu").val(yifu); 表格行计算 总金额: function jisuanTrJinE(obj){ debugger; var curTab = $(obj).closest("table"); var curTr = $(obj).closest("tr"); var curTabId = curTab.attr("id"); var zongJinE = 0; //alert(curTabId); var danjia = curTr.find("input[class='danjia']").val(); var shuliang = curTr.find("input[class='shuliang']").val(); if(danjia==""){ danjia=0;} if(shuliang==""){ shuliang=0;} zongJinE = danjia*shuliang; curTr.find("input[class='jinE']").val(zongJinE); jisuanZongEAndFuKuan();//计算总额和总已付 总未付 } 通过java反射得到javabean的属性名称和值 Field fields[]=cHis.getClass().getDeclaredFields();//cHis 是实体类名称 String[] name=new String[fields.length]; Object[] value=new Object[fields.length]; try { Field.setAccessible(fields, true); for (int i = 0; i < name.length; i++) { name[i] = fields[i].getName(); System.out.println(name[i] + "-> "); value[i] = fields[i].get(cHis);//cHis 是实体类名称 System.out.println(value[i]); } } catch (Exception e) { e.printStackTrace(); } 通过反射获取类属性字段 以及 调用类方法 以下方法未测试应该可以 public class ModelClassHelper { public static HashMap<String,Class> init(String classPath) { try { //"com.geocompass.model.STSTBPRPModel" HashMap<String,Class> fieldHashMap=new HashMap<String,Class>(); Class cls = Class.forName(classPath); //com.geocompass.model.STSTBPRPModel Field[] fieldlist = cls.getDeclaredFields(); for (int i = 0; i < fieldlist.length; i++) { Field fld = fieldlist[i]; fieldHashMap.put(fld.getName(), fld.getType()); // System.out.println("name = " + fld.getName()); // System.out.println("decl class = " + fld.getDeclaringClass()); // System.out.println("type = " + fld.getType()); // System.out.println("-----"); } return fieldHashMap; } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static String getTableName(String classPath) { try { Class cls = Class.forName(classPath); Method test=cls.getDeclaredMethod("getTableName" ); Object invoke = test.invoke(cls.newInstance()); return invoke.toString(); //cls.asSubclass(TabModel.class); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InstantiationException e) { // TODO Auto-generated catch block e.printStackTrace(); } return ""; }} 利用反射技术动态获取任意Java类实例的属性值 package org.apache.easframework.core.entity.impl; import java.lang.reflect.Field; public class TestEntity { private String code; private String name; public void setCode(String code) { this.code = code; } public String getCode() { return this.code; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } public static void main(String[] args) throws SecurityException, ClassNotFoundException, IllegalArgumentException, IllegalAccessException { TestEntity obj = new TestEntity(); obj.setName("name value"); obj.setCode("code value"); Field[] fds = Class.forName ("org.apache.easframework.core.entity.impl.TestEntity").getDeclaredFields(); System.out.println(fds.length); for(int i=0;i<fds.length;i++) { System.out.println(fds[i].get(obj)); } } } //hibernate查询部分字段转换成实体bean /** * 查询线路信息 */ @Override public List<Line> getSimpleLineListByTj(Map<String,Object> paramMap){ Criteria cr=this.getSession().createCriteria(Line.class,"Line"); // cr.setFetchMode("chuTuanInfo", FetchMode.JOIN); // Criteria teamche=cr.createAlias("chuTuanInfo","chuTuanInfo", JoinType.LEFT_OUTER_JOIN); // Criteria teamPlanCR=cr.createAlias("teamplan","teamplan", JoinType.LEFT_OUTER_JOIN); ProjectionList pList=Projections.projectionList(); // pList.add(Projections.property("id")); // pList.add(Projections.property("linename")); pList.add(Projections.alias(Projections.property("id"), "id"));//使用别名才能aliasToBean到Line pList.add(Projections.alias(Projections.property("linename"), "linename")); // pList.add(Projections.property("teamplan.renshu")); cr.setProjection(pList); // FaTuanState.getMap(); // List<String> propertyNameList = new ArrayList(); // propertyNameList.add("id"); // propertyNameList.add("linename"); // List list = getListWithPartProperty(cr, propertyNameList); // Map<String,Object> paramMap = new HashMap<String,Object>(); // paramMap.put(key, value); cr.add(Restrictions.ne("state", FaTuanState.TINGFA));//《》停发和暂停的 cr.add(Restrictions.ne("state", FaTuanState.ZANTING)); if(paramMap.get("areaid")!=null && !StringUtils.isBlank(paramMap.get("areaid").toString())){ cr.add(Restrictions.eq("jingqu.id", Integer.parseInt(paramMap.get("areaid").toString()))); } cr.addOrder(Order.asc("linename")); cr.setResultTransformer(Transformers.aliasToBean(Line.class)); return cr.list(); } $("#a,#b,#c").val(0); my97自定义事件 onFocus="WdatePicker({onpicked:function(){alert(0);}})" $("#selectLine option[value!='']").remove(); $("#qitarenyuanDiv").hide("fast"); $("#qitarenyuanDiv").show("fast"); 如果不用isnull函数判断则计算出来如果有一列是null 则相加就是null,如 两列:1 null 1+null = null select sum(ISNULL(jinE,0)+ISNULL(qitajine,0)) yingyeE form a //toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。 $("#renjunlirun").val(zongLiRun.toFixed(2));//金额 map el表达取值 更新语句 点击删除行 嵌套更新 ${initMap['kehuList']} @Override public Integer updateTeamcheLiangDaoYouNames(String teamcheliagnId, String daoyouNames){ String sql = "update Team_CheLiang set daoyouNames=:daoyouNames where id =:id"; Query query=this.getSession().createSQLQuery(sql); query.setString("daoyouNames", daoyouNames); query.setString("id", teamcheliagnId); return query.executeUpdate(); } $(".mingxirmspan").click(function(){ $(this).closest("tr").remove(); }) 嵌套批量更新 UPDATE Team_CheLiang SET lineName = t.linename FROM TeamPlan t ,Team_CheLiang tc WHERE t.id = tc.teamid hibernate sql查询转换成VO @Override public List<TuanDuiFenxiVo> getTuanDuiFenxiList(TuanDuiFenxiVo tuanDuiFenxivo,Integer pageNo,Integer pageSize){ String sql="SELECT b.tuanhao,b.lvxingshename,b.zongshu AS zongrenshu,b.chengrenshu,b.ertongshu,b.yingershu," +" t.chebiao,s.zongjine,y.youkename as kehuname,c.chutuandaoyouNames AS daoyounames,u.name AS xiaoshouname" +" FROM BaoMingInfo b" +" LEFT JOIN ChuTuanInfo c ON t.id=c.fentuanid where 1=1"; if(tuanDuiFenxivo.getXiaoshouname()!=null){ sql+=" and u.name like '%"+tuanDuiFenxivo.getXiaoshouname()+"%'"; } Query query=this.getSession().createSQLQuery(sql); query.setMaxResults(pageSize); query.setFirstResult((pageNo-1)*pageSize); List<TuanDuiFenxiVo> list= (List<TuanDuiFenxiVo>) query.setResultTransformer(Transformers.aliasToBean(TuanDuiFenxiVo.class)).list(); //List<TuanDuiFenxiVo> list = query.list(); return list; } onkeyup="if(isNaN(value))execCommand('undo')" onafterpaste="if(isNaN(value))execCommand('undo')" 正则表达式验证正数负数 浮点数 /^\-?[0-9]+(.[0-9]+)?$/ datatype="/^\-?[0-9]+(.[0-9]+)?$/" @JsonIgnoreProperties(value={"attrName"}) jeecg项目子窗口获得父窗口元素id, var parentWin = frameElement.api.opener; alert($(parentWin.document).find("#id").val()); alert($("#tableId").find("tbody tr[moban='true']").find(":visible").size()); oConvertUtils.getIntFromObj() java自带uuid生成策略 UUID.randomUUID().toString() function checkTableKeyWordVal(tableId){ var result = true; $("#"+tableId+" tbody tr").not(":last").each(function(i){ var keyVal = $(this).find("input[class='keyWords']").val(); if(keyVal==""){ tip("请填写明细项目名称"); $(this).find("input[class='keyWords']").focus(); result = false; return false; } }); return result; } java 获得当前时间 年月日时分秒 星期几 <% SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");//设置日期格式 SimpleDateFormat weekFM = new SimpleDateFormat("EEEE");//星期几 //new Date()为获取当前系统时间 out.print("现在是"+df.format(new Date()) +" "+weekFM.format(new Date())); %> 关闭当前iframe function closeDialog(){ frameElement.api.close();//本方法也行 //或者下面的方式 var win = frameElement.api.opener; win.dialog.close(); } hibernate,createCriteria in条件 是一个集合。list 或 数组等 cq.in("states", new String[]{"2","4","5"}); cq.addOrder("shenheshijian", SortDirection.desc); create function getReportResName(@nameA nvarchar(200),@nameB nvarchar(200)) returns nvarchar(200) as begin declare @lastNameVal nvarchar(200) --如果@nameA 不为空则直接返回@nameA IF @nameA <>'' BEGIN set @lastNameVal = @nameA END ELSE --否则如果@nameA是空则返回nameB,经测试兼容null和'' begin set @lastNameVal = @nameB end return @lastNameVal end 行列转换: SELECT max(case type when 0 then jine else 0 end) weichanshengJine, max(case type when 1 then jine else 0 end) duochangshengJine, max(case type when 2 then jine else 0 end) tuifeiJine FROM BaoZhangZongFeiChanSheng WHERE fentuanid='402881e44365c0dc014366a4b47e0114' group by fentuanid controoler中 //每个地接的最大人群价格 初始化用 List<Map<String,Object>> dijieMaxJiaGeList =(List<Map<String,Object>>)resMap.get("dijieMaxJiaGeList"); JSONArray jsonArray = new JSONArray(); jsonArray.addAll(dijieMaxJiaGeList); mav.addObject("dijieMaxJiaGeList", jsonArray); 前台页面: //初始化地接 的最大价格 属性 ,方便删除后重新计算计划支出使用 var dijieMaxJiaGeList='${dijieMaxJiaGeList }'; var aaa = eval("("+dijieMaxJiaGeList+")"); initDiJieMaxJiaGeAttr(aaa); function initDiJieMaxJiaGeAttr(dijieMaxJiaGeList){ debugger; $.each(dijieMaxJiaGeList,function(index, value) {//多个地接 对应每个 的最大价格 //alert(index+value);//value是map for(var key in value){//这里其实只有一个地接的价格 //alert(value[key] +' '+key); //$("#select_id option[text='jQuery']").attr("selected", true); //设置Select的Text值为jQuery的项选中 var diJieSel =$("#dijieinfo").find('select[yuanname="dijieid"]'); diJieSel.each(function(i){ var curVal = $(this).val(); if(curVal==key){ $(this).attr("curMaxJiaGe",value[key]); alert($(this).attr("curMaxJiaGe")); } }); } }); } java利用反射获取类的属性及类型。 import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.Map; import org.apache.commons.lang.StringUtils; import org.hibernate.Criteria; import org.hibernate.criterion.Order; import org.hibernate.criterion.Restrictions; import org.jeecgframework.core.common.dao.impl.CommonDao; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; Field[] fields = c.getDeclaredFields();//获取实体类的所有属性,返回Field数组 for (int j = 0; j < fields.length; j++) { // 遍历所有属性 String attrNname = fields[j].getName(); // 获取属性的名字 if(attrNname.indexOf("beizhu")!=-1){//如果有备注 则按备注排序 路桥使用 System.out.println("ok"); break; } } 现在需要把通过webService传过来的实体Person里面的所有字段的null值,换成"" 实现思路: 1.获取实体的所有字段,遍历 2.获取字段类型 3.调用字段的get方法,判断字段值是否为空 4.如果字段值为空,调用字段的set方法,为字段赋值 code: 复制代码 Field[] field = model.getClass().getDeclaredFields(); // 获取实体类的所有属性,返回Field数组 try { for (int j = 0; j < field.length; j++) { // 遍历所有属性 String name = field[j].getName(); // 获取属性的名字 name = name.substring(0, 1).toUpperCase() + name.substring(1); // 将属性的首字符大写,方便构造get,set方法 String type = field[j].getGenericType().toString(); // 获取属性的类型 if (type.equals("class java.lang.String")) { // 如果type是类类型,则前面包含"class ",后面跟类名 Method m = model.getClass().getMethod("get" + name); String value = (String) m.invoke(model); // 调用getter方法获取属性值 if (value == null) { m = model.getClass().getMethod("set"+name,String.class); m.invoke(model, ""); } } if (type.equals("class java.lang.Integer")) { Method m = model.getClass().getMethod("get" + name); Integer value = (Integer) m.invoke(model); if (value == null) { m = model.getClass().getMethod("set"+name,Integer.class); m.invoke(model, 0); } } if (type.equals("class java.lang.Boolean")) { Method m = model.getClass().getMethod("get" + name); Boolean value = (Boolean) m.invoke(model); if (value == null) { m = model.getClass().getMethod("set"+name,Boolean.class); m.invoke(model, false); } } if (type.equals("class java.util.Date")) { Method m = model.getClass().getMethod("get" + name); Date value = (Date) m.invoke(model); if (value == null) { m = model.getClass().getMethod("set"+name,Date.class); m.invoke(model, new Date()); } } // 如果有需要,可以仿照上面继续进行扩充,再增加对其它类型的判断 } } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } jquery $.each 和for 怎么跳出循环 1、for循环中我们使用continue;终止本次循环计入下一个循环,使用break终止整个循环。 2、而在jquery中 $.each则对应的使用return true 和return false。 jquery each中跳出循环 jQuery continue可以使用return true break可以使用return false oracle 树形表结构排序 select * from T_S_FUNCTION start with parentfunctionid is null connect by prior id=parentfunctionid order SIBLINGS by FUNCTIONORDER ID NVARCHAR2 32 ICONID NVARCHAR2 32 PARENTFUNCTIONID NVARCHAR2 32 FUNCTIONNAME NVARCHAR2 50 FUNCTIONLEVEL NUMBER 0 FUNCTIONURL NVARCHAR2 100 ICONPATH NVARCHAR2 2000 FUNCTIONORDER NVARCHAR2 10 FUNCTIONIFRAME NUMBER 0 FUNCTIONCODE NVARCHAR2 32 FUNCTIONISVIEW NVARCHAR2 1 如何查询oracle中的关键字,执行: select * from v$reserved_words --Sqlserver 2005 跨数据库 导入数据: --SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问 --启用Ad Hoc Distributed Queries: exec sp_configure 'show advanced options',1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure --使用完成后,关闭Ad Hoc Distributed Queries: exec sp_configure 'Ad Hoc Distributed Queries',0 reconfigure exec sp_configure 'show advanced options',0 reconfigure ---------------------------------------------- /** insert into openrowset('sqloledb','目的服务器名';'sa';'',目的数据库.dbo.表) select * from 源数据库..表 */ --eg: insert into openrowset('sqloledb','127.0.0.1';'sa';'sa',newDbName.dbo.tabName) select * from dbName..tabName java 得到uuid String s = UUID.randomUUID().toString(); //去掉“-”符号 return s.substring(0,8)+s.substring(9,13)+s.substring(14,18)+s.substring(19,23)+s.substring(24); 如何查询数据库中所有不为空的表,并返回相应表名称、行数 SELECT A.NAME, MaxRows = MAX(B.rows) FROM sys.tables A INNER JOIN sys.partitions B ON A.object_id = B.object_id WHERE B.rows > 0 --and name not like 'ACT_%' --and name not like 't_s_%' GROUP BY A.name ORDER BY name,MAX(B.rows) DESC maven打包,首先cd到项目根目录,如果想跳过测试阶段,可用: mvn package -DskipTests bat命令,说明start是打开文件夹的意思: e: cd E:\ecpliceWorkspace\tonghangxinxi start E:\ecpliceWorkspace\tonghangxinxi\target mvn package -DskipTests pause Sqlserver2005 破解版下载地址: http://www.xiaidown.com/soft/from/1583.html --查询sql表列名 Select Name FROM SysColumns Where id=Object_Id('Tab') sql查询转换成实体或对应的VO Transformers //addScalar("id") 默认查询出来的id是全部大写的(sql起别名也无效,所以使用.addScalar("id")就可以自动填充类里面的id属性了,比较方便。 Query query = getSession().createSQLQuery(sql).addScalar("id"); query.setResultTransformer(Transformers.aliasToBean(TeamPlan.class)); return query.list(); //说明t.line_name as lineName,之所以起别名是因为属性是lineName,当然别名起LINENAME也行是不区分大小写的 String hql = "select t.id,t.line_name as lineName from T t where t.ORGANIZ_ID in ("+orgaIdInTj+") "; Query query = getSession().createSQLQuery(sql).addScalar("id").addScalar("LineName"); jeecg 弹出框 点击按钮回调父页面 返回值 <t:base type="jquery"></t:base> <t:base type="tools,easyui"></t:base> <style type="text/css"> </style> <script type="text/javascript"> function xieYiOpera(opera){ if(windowapi){ windowapi.opener.xieYiCallBack(opera); }else{ parent.xieYiCallBack(opera); } } </script> 如果导入的项目只有源码,可以将其他项目中的.classpath 和 .project复制到根目录下即可。 正则表达式去除字符串左右空格函数 调用方法是,str.Trim(); String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } String.prototype.LTrim = function() { return this.replace(/(^\s*)/g, ""); } String.prototype.RTrim = function() { return this.replace(/(\s*$)/g, ""); } /** * 得到指定日期 + 几个小时后的日期 * 参数都必须,否则返回null * @param date 需要增加小时数 的日期 * @param hour 增加小时数 * @return */ public static Date getAddSomeHoursDate(Date date,int hour){ if(date!=null && hour!=0){ // SimpleDateFormat sf = new SimpleDateFormat(patternStr); Calendar ca=Calendar.getInstance(); ca.setTime(date); ca.add(Calendar.HOUR_OF_DAY, hour); // System.out.println(sf.format(ca.getTime())); return ca.getTime(); }else{ return null; } } ----------------------------------------------------------------------------------------- use master go create proc KillSpByDbName(@dbname varchar(20)) as begin declare @sql nvarchar(500),@temp varchar(1000) declare @spid int set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')' exec (@sql) open getspid fetch next from getspid into @spid while @@fetch_status <>-1 begin set @temp='kill '+rtrim(@spid) exec(@temp) fetch next from getspid into @spid end close getspid deallocate getspid end --举例使用,关闭数据库下的所有连接操作 Use master Exec KillSpByDbName 'bafangmsh' 这种方式serviceImpl 方法不用throws异常,比较方便 if(count>0){ //这个是poi的异常 throw new IllegalPropertySetDataException("msg"); //或者 IllegalArgumentException java的 throw new IllegalArgumentException("msg"); } 前台得到后台定义的异常字符串 } catch (Exception e) { message = e.getMessage(); e.printStackTrace(); } // hibernate 返回对象指定属性,需要返回的列,可以直接返回 对象属性 @Override public TeamPlan getTeamPlanByBaoMingId(String baomingid){ Criteria cr=this.getSession().createCriteria(BaoMingInfo.class); cr.setProjection(Projections.property("teamplan"));// 需要返回的列,可以直接返回 对象属性 cr.add(Restrictions.eq("id", baomingid));//条件 return (TeamPlan)cr.uniqueResult(); } @Override public Integer getSumBaseXuNiZuoWeiByTpid(String teamPlanID){ String hql="select sum(basexunizuoweishu) from TeamPlanXuNiZuoWeiEntity where teamplanid=:teamplanid"; Query query=this.getSession().createQuery(hql); query.setString("teamplanid", teamPlanID); return (Integer)query.uniqueResult(); } ctrl+shift+O 清理代码引用的多余类 --查询sql数据库表列名称 select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='PRICE_BASE') --查询oracle数据库表列名称 select * from user_tab_cols where table_name = 'PRICE_BASE' @Caching(evict = { @CacheEvict(value="productBaseBaoJiaCache",key="#travelInfo.id+'_baojia'",beforeInvocation=true), @CacheEvict(value="travelClassCache",key="#travelInfo.id+'_fenlei'",beforeInvocation=true) }) el表达式截取 逗号后面的字符串 ${fn:substringAfter(strVar,',' )} el表达式判断字段长度 <c:if test="${fn:length(strVar)>65 }"> </c:if> el表达式截取字符串长度 ${fn:substring(strVar,0,16 )} --在新增或编辑的时候设置默认值或加isnull判断 Sql isnull函数 ISNULL(columName, 0)<>35 或 ISNULL(columName, '')<>'35' 即使是数字类型加上单引号也支持 isNaN() 函数用于检查其参数是否是非数字值。如果是非数字值则返回true。 document.write(isNaN(0)); false document.write(isNaN("Hello")); true document.write(isNaN("2005/12/12")); true 手动ecache处理: import net.sf.ehcache.Cache; import net.sf.ehcache.CacheManager; import net.sf.ehcache.Element; import org.springframework.cache.annotation.Cacheable; import org.springframework.cache.ehcache.EhCacheCacheManager; @Autowired private EhCacheCacheManager ehCacheManager; //将查询出来的结果存入cache CacheManager cacheManager =ehCacheManager.getCacheManager(); Cache cache = cacheManager.getCache("needDealOrderCountCache"); String curCacheKey = curUserOrganId; Element el = null; //查询后验证缓存中是否存入指定key if(cache.isKeyInCache(curCacheKey)){//如果缓存里面有值 el = cache.get(curCacheKey); count = (Integer)el.getObjectValue(); return count; } //将指定key的缓存对象从缓存中清除 Cache cache = manager.getCache("MY_CACHE"); if(cache.isKeyInCache("cache_business_"+business_id)){ //将指定key的缓存对象从缓存中清除 cache.remove("cache_business_"+business_id); } //按enter 进行搜索 document.onkeydown = function(e){ var ev = document.all ? window.event : e; if(ev.keyCode==13) { $('#searchGo').click();//点击搜索 或 表单提交 } } curRadio.get(0).checked=true;//原始js调用 选中事件,curRadio是radio单个对象 让网页背景图片 根据屏幕大小自动铺满: 设置两层div,底层div当做背景使用,放置一张图片即可。 <div id="background" style="position:absolute;z-index:-1;width:100%;height:100%;top:0px;left:0px;"><img src="1.jpg" width="100%" height="100%"/></div> 再将网页内容放置到第二层上<div id="content">页面内容</content> LinkedHashMap 先进先出 有顺序 将逗号分隔 的字符串转化成List List<String> parIdListTmp = new ArrayList<String>(); String parIdArray[] = parFenLeiIds.split(","); Collections.addAll(parIdListTmp, parIdArray); oracle树形表结构查询: 一、树型表结构: 节点ID 上级ID 节点名称 二、公式: select 节点ID,节点名称,level from 表 connect by prior 节点ID=上级节点ID start with 上级节点ID=节点值 --排序 这样的排序树形 结构不乱 order siblings by 节点ID //保存路径 如file路径是E:\filer\a.jpg File toSaveFile=new File("filePath"); if(toSaveFile!=null){ toSaveFile.mkdirs();//会自动创建文件夹 } img如果没有图片显示默认图片效果 <img src="本来要显示的图片URL" onerror="this.src='图片挂了的话要显示的默认图片URL'" /> 其实就是说,在这个img的行为失败(onerror)的时候,调用javascript: this.src="URL" 来给这个img标签重新指定src属性,从而达到显示备用图片的效果。 List根据对象的某个属性排序工具类 List排序 import java.util.Collections; import java.util.Comparator; import java.util.List; import org.apache.commons.beanutils.BeanComparator; import org.apache.commons.collections.ComparatorUtils; import org.apache.commons.collections.comparators.ComparableComparator; public class ListSortUtil { /** * 按bean的属性值对list集合进行排序 * * @param list * 要排序的集合 * @param propertyName * 集合元素的属性名 * @param isAsc * 排序方向,true--正向排序,false--逆向排序 * @return 排序后的集合 */ public static List sortList(List list, String propertyName, boolean isAsc) { //借助commons-collections包的ComparatorUtils //BeanComparator,ComparableComparator和ComparatorChain都是实现了Comparator这个接口 if(list!=null && list.size()>0){ Comparator mycmp = ComparableComparator.getInstance(); mycmp = ComparatorUtils.nullLowComparator(mycmp); //允许null if(isAsc){ mycmp = ComparatorUtils.reversedComparator(mycmp); //逆序 } Comparator cmp = new BeanComparator(propertyName, mycmp); Collections.sort(list, cmp); } return list; } } //高效率遍历Map以及在循环过程中移除 remove指定key //使用iter循环的时候 可以在循环中移除key,for在循环的过程中移除会报错哦 //本方法效率高 Iterator iter = finalFenleiMap.entrySet().iterator(); while (iter.hasNext()){ Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); if(key!=null){ curKey = key.toString(); if(curKey.indexOf("国内")!=-1){ finalFenleiMap.put(curKey, scenicList); }else if(curKey.indexOf("出境")!=-1){ iter.remove();//移除出境 的专题 } } } Jquery Ajax 保存: $.ajax({ type: "POST", async:false, url: "${ctx}/url", data: {pId:provinId}, success: function(returnData){ } }); hibernate in List查询条件 sum求和使用参考: @Override public Integer getSumZongShuByBaoMingIdList(List<String> baomingidList){ Integer zongshu = 0; String hql="SELECT sum(zongshu) from BaoMingInfo where id in (:baomingidList)"; Query query=this.getSession().createQuery(hql); query.setParameterList("baomingidList", baomingidList); Long queryZongShu = (Long)query.uniqueResult(); if(queryZongShu!=null){ zongshu = Integer.parseInt(queryZongShu.toString()); } return zongshu; } 查找oracle自己用户的表 select table_name from user_tables; el 表达式遍历Map <c:forEach var="item" items="${payMentMap}"> <option value="${item.key}">${item.value}</option> </c:forEach> jquery一次绑定多个元素事件 $(".peoplenum,input[name$='otherAmount'],#aa,#bb").bind("change", function(){ }); $("#deposit,#carAmount").bind("change",function(){ }); js验证是否是数字,支持正负数小数。 function isShuzi(str){ //var regExp =/[0-9]$/;//不支持小数 var regExp =/^\-?[0-9]+(.[0-9]+)?$/; if(!regExp.test(str.val())){ str.val("0"); } } --oracle数据库的编码 select * from nls_database_parameters where parameter ='NLS_CHARACTERSET'; --oracle客户端编码 select * from nls_instance_parameters where parameter='NLS_LANGUAGE'; js关闭当前窗口,window.close()方法只能是window.open打开的才能执行关闭。 function closeWin() { //open(location, '_self').close(); //window.close(); window.opener=null; window.open('','_self'); window.close(); } 远程调用其它站点并设置cookie: 参考js var domainArray = [ {site:'g.com',action:'/b.do?c' } ,{site:'www.baidu.com',action:'/a.do?b' } ]; function crossDominCookieInit(){ $.each(domainArray, function(key, obj) { //alert('index in arr:' + key + ', corresponding value:' + val); $.ajax({ type : "post", async:true, url : "domincookie/setCookie?t="+obj.site+obj.action, crossDomain:true, dataType : "jsonp",//数据类型为jsonp jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数 success : function(data){ }, error:function(){ } }); }); } //调用远程cookie设置方法,让其它站点设置本系统登陆的账号信息 crossDominCookieInit(); mybatis 查询 xml list参数; <select id="getParentChanpinFenleiByIds" resultType="string" parameterType="java.util.List"> SELECT a.FENLEINAME from CHANPINFENLEI a where a.id in (select b.pid from CHANPINFENLEI b where b.id in <foreach collection="list" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> ) </select> 检测开始日期 结束日期 是否存在交叉 where 1=1 "+tj+" and ((starttime>="+starttime+" and starttime<="+endtime+") " + " or (endtime>="+starttime+" and endtime<="+endtime+" ) or (starttime>="+starttime+" and endtime<="+endtime+" ) " + " or (starttime<="+starttime+" and endtime>="+endtime+" ))"; 远程桌面卡顿,调用远程任务管理器或注销一些用户,可以使用Ctrl+Alt+End 按 Ctrl+Alt+Del 始终可转到本地计算机的桌面。如果需要向远程计算机发送 Ctrl+Alt+Del,则必须使用 Ctrl+Alt+End。 数组 list互转 String str[] = list.toArray(new String[]{}); List list= java.util.Arrays.asList(String str[]); jQuery.merge( first, second )返回: Array 描述: 合并两个数组内容到第一个数组。 first 类型: Array 第一个用于合并的数组,其中将会包含合并后的第二个数组的内容。 second 类型: Array 第二个用于合并的数组,该数组不会被修改,其中的内容将会被合并到第一个数组中。 $.merge()操作形成一个数组,其中包含两个数组的所有元素。追加到第一个数组中的第二个数组元素的顺序会被保留。$.merge()函数是破坏性的。它会修改第一个数组的内容,并将第二个数组的内容添加到第一个数组中。 如果您需要保留原始的第一个数组,请在调用$.merge()前拷贝一个出来。幸运的是, $.merge()本身也可以用于拷贝操作: 1 var newArray = $.merge([], oldArray); 此快捷方式创建一个新的,空数组合并了oldArray的内容,有效地克隆了数组。 $.merge()操作形成一个数组,其中包含两个数组的所有元素。追加到第一个数组中的第二个数组元素的顺序会被保留。$.merge()函数是破坏性的。它会修改第一个数组的内容,并将第二个数组的内容添加到第一个数组中。 如果您需要保留原始的第一个数组,请在调用$.merge()前拷贝一个出来。幸运的是, $.merge()本身也可以用于拷贝操作: 1 var newArray = $.merge([], oldArray); 此快捷方式创建一个新的,空数组合并了oldArray的内容,有效地克隆了数组。 在jQuery 1.4之前,该参数应该是原生的Javascript数组对象;如果情况并非如此(参数不是原生的Javascript数组对象)请使用$.makeArray将它们变成真正的 Javascript 数组。 Example: 合并两个数组,修改第一个参数的内容。 1 $.merge( [0,1,2], [2,3,4] ) Example: 合并两个数组,但是对第一个参数进行拷贝,这样就可以保证原始的内容不被修改。 var first = ['a','b','c']; var second = ['d','e','f']; $.merge( $.merge([],first), second); Service 中添加同步块防止并发 重复。 synchronized(this){} select change事件给其它元素赋值,本select的value或text onchange='$("#areaname").val($("option:selected",this).attr("areaname"))' js调试模式控制台输出信息。 console.log js返回顶部封装 简洁: 加入html页面body最后面即可。 <script> a(); function a() { $(function() { if ($(".j-to-top").length === 0) { var f = "<div class='j-to-top' style='display: none; position: fixed; bottom: 108px; right: 0; width: 42px; height: 42px; z-index: 10001'><img style='width: 100%;' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFUAAABUCAYAAADzqXv/AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzU1OTUxOTAzMzRBMTFFNEEwMEVEMkNDRjYzQ0NGREMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzU1OTUxOTEzMzRBMTFFNEEwMEVEMkNDRjYzQ0NGREMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozNTU5NTE4RTMzNEExMUU0QTAwRUQyQ0NGNjNDQ0ZEQyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozNTU5NTE4RjMzNEExMUU0QTAwRUQyQ0NGNjNDQ0ZEQyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrHprYYAAAt+SURBVHja7J19TBNp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'/></div>"; $("body").append(f); } var g = $(".j-to-top"), e = $(window).height() * 3; $(window).bind("scroll", function() { var h = document.documentElement.scrollTop || document.body.scrollTop; if (h > e) { g.show(); } else { g.hide(); } }); g.bind("click", function() { $(this).hide(); document.documentElement.scrollTop = 0; document.body.scrollTop = 0; }); }); } </script> js将字符串转化成函数:eval(logOutCallbackFun+"()"); jrebel配置热部署参数: -noverify -agentpath:D:/jrebel/lib/jrebel64.dll -Drebel.dirs=E:/ecpliceWorkspace/xinxiOrderSplit/src/main/webapp/WEB-INF/classes/ -Drebel.disable_update=true -XX:MaxPermSize=256m 搜索引擎查询的时候: //对于这些filterQuery的字段,必须是indexed="true",如果之前有这个字段后来改这个indexed属性,则需要重新建立索引,否则搜索不到 SolrQuery query = new SolrQuery(); query.addFilterQuery("traveltype:0"); query.addFilterQuery("guize:["+dateStr+timeStr+" TO "+dateStr+timeStr+"]"); query.set("q", queryType+":"+keyWords+"");//注意不加* 如果eclipse 和 jdk的位数不同,如一个64Bit一个32位,不需要修改环境变量,只需要在eclipse根目录的eclipse.ini文件中第一行加入:-vm D:\Program Files\Java\jdk1.7.0_21\bin即可。当然加入的jdk路径是和eclipse位数匹配的jdk位数。 压缩网站的css和js,合并多个文件到一个文件 uglifyjs index.js html5shiv.min.js -o all.min.js uglifycss index.min.css web.css >all.min.css --css 控制文字多使用省略号 .overflowPoint{ text-overflow:ellipsis;width: 200px;overflow: hidden; } <div class="overflowPoint"> <nobr> 熟悉目的地:<b>地方地方地方地方的发地方地方地方地方的发地方地方的地方地方放的是地方地方地市</b> </nobr> </div> ------------- 博客技术 添加到这里了,倒着的 js控制 按enter进行搜索或提交表单: //按enter 进行搜索 document.onkeydown = function(e){ var ev = document.all ? window.event : e; if(ev.keyCode==13) { $('#searchGo').click();//点击搜索 或 表单提交 } } java中得到图片的宽度 高度: BufferedImage srcImage = null; srcImage = ImageIO.read(new File(srcImagePath)); int srcImageHeight = srcImage.getHeight(); int srcImageWidth = srcImage.getWidth(); json转javascript对象 var tpIdObj = eval("(" + tpid + ")");//json字符串转 对象 var tpid = JSON.stringify(tpIdObj);//js对象转 json字符串 阿里巴巴的datasource: <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close"> 结合使用spring的jdbcTemplate @Autowired DruidDataSource dataSource; jdbcTemplate = new JdbcTemplate(dataSource); int rowCount = this.jdbcTemplate.queryForObject("select count(*) from price_base", Integer.class); 当前也可以使用spring的JdbcDaoSupport 具体参考:http://www.mkyong.com/spring/spring-jdbctemplate-jdbcdaosupport-examples/ linux服务器查看redis版本: redis-server-v document.getElementById("searchForm").submit is not a function 在用userForm.submit() 提交表单的时候,表单里面不能有name="submit"的元素,否则在提交的 时候,该对象会和submit();方法发生混淆造成该错误!! 切记,切记! 使用Spring mvc接收整个url地址及参数时注意事项: url= http://baidu?oid=9525c1f2b2cd45019b30a37bead6ebbb&td=2015-08-22&ot=a31f30c7905b4c8cb663e4d93de285c8 @RequestMapping(value="/aa",method=RequestMethod.GET) public ModelAndView aa(HttpServletRequest request,String url){ ModelAndView mav = new ModelAndView("redirect:"+url); return mav; } 这样到controller里面后,url中&符号后面的参数会都丢失。 使用encodeURIComponent(url); 在controller中就获得这个正确的地址。 EL表达式拼接字符串 <c:set var="lineTypes" value="${','}${resMap['solrQueryVO'].lineType }${','}" ></c:set> <c:if test="${fn:contains(lineTypes,',0,') }" >ok</c:if> js动态参数作为Object的属性取值 var myObj = {"a":1,"b":2}; var a = 'a'; myObj[a] 就可以获取到 属性a的值了 maven下载jar包失败后无法再次重新下载: 删除maven 资源库中的 *.lastUpdated文件 使用Iterator的方式也可以顺利删除和遍历 eg: public void iteratorRemove() { List<Student> students = this.getStudents(); System.out.println(students); Iterator<Student> stuIter = students.iterator(); while (stuIter.hasNext()) { Student student = stuIter.next(); if (student.getId() % 2 == 0) stuIter.remove(); } System.out.println(students); } 查看表空间位置: select * from dba_data_files; 出错场景是升级oracle驱动,将版本从ojdbc14升级到ojdbc6,hibernate执行原生态sql语句会报如下错误: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9 org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:948) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:838) 解决方案: SELECT CAST) as operation,CAST) as functionCode cast转换数据类型是关键,且只能转换到varchar,转换到nvarchar也会有异常。 查看某一文件夹下所有文件夹的权限情况:ls -l 分别是:所有者(user)-所有者(user)-其他人(other) r 表示文件可以被读(read) w 表示文件可以被写(write) x 表示文件可以被执行(如果它是程序的话) - 表示相应的权限还没有被授予 具体数字法代表权限可以参考:http://zhou-yan-qing.blog.163.com/blog/static/63575829201048104917583/ 对/opt/oracle/目录下的所有文件与子目录执行相同的权限变更: chmod -R 770 /opt/oracle/ 百度统计可以统计网站的访问量等,使用js。 百度站长平台(网站收录):http://zhanzhang.baidu.com/linksubmit/url SEO优化 <meta name="keywords" content=""/> <meta name="description" content=""/> $(document).ready(function(){ var exceptionMsg = '${exception.message }'; var exceptionstr = ''; //javascript截取字符串 if(exceptionMsg!='' && exceptionMsg.indexOf("[")!=-1){ exceptionstr = exceptionMsg.substring(exceptionMsg.indexOf("[")+1,exceptionMsg.indexOf("]")); } //java map对象变成js var msg= "<%=UserPermissions.permissionExceptionMap %>"; //js replaceAll 正则表达式全局替换 var jsonstr = msg.replace(new RegExp(/(=)/g),':'); //jsonstr = "{aaa:'河南省'}";//后面的河南省必须要分号 var jsonObj = eval("(" + jsonstr + ")");//json字符串转 对象 //从js对象中动态读取属性值,动态属性信息 $("#aaa").html(jsonObj[exceptionstr]); }); maven打包 tomcat运行pom配置,同时还需要配置org.apache.tomcat.maven插件,这里省略。 <groupId>com.changyou01</groupId> <artifactId>weixin</artifactId> <version>1.0-SNAPSHOT</version> <!-- 下方两行是web项目 tomcat启动使用的方式,如果是打成jar包,则不需要配置下两行内容 --> <packaging>war</packaging> <name>iteamName</name> ------------------------------------//new 枚举用法 public enum OrderDeliveryTypeEnum { DAODIAN_ZIQU("0","到店自取"), KUAIDI_YUNSHU("1","快递运输"), SONGHUO_SHANGMEN("2","送货上门"); private String code;//快递方式code private String name;//快递方式 名称 OrderDeliveryTypeEnum(String code,String name){ this.code = code; this.name = name; } /** * 根据code 得到对应的枚举,遍历枚举方法 * @param code * @return */ public static OrderDeliveryTypeEnum getNameByCode(String code) { for (OrderDeliveryTypeEnum c : OrderDeliveryTypeEnum.values()) { if (c.getCode().equals(code)) { return c; } } return null; } } //去除list中的重复元素放入到 hashset中,l是 arrayList HashSet<String> hs = new HashSet<String>(l); //给arrayList 或 数组 或 hashSet 拼接成字符串 String str= StringUtils.join(hs, "+"); js 将数组转换为逗号分隔的字符串 var arr = new Array(3) ; arr[0] = "Jani"; arr[1] = "Hege"; arr[2] = "Stale"; document.write(arr.join() + "<br />");//默认情况下不提供分隔符,分隔符是“,”号; 字符串转数组 实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下: var s = "abc,abcd,aaa"; ss = s.split(",");// 在每个逗号(,)处进行分解。 在开始菜单中单击运行输入cmd打开命令提示符窗口输入netstat -b 查看端口占用情况 struts2支持多个命名空间 支持多个url地址映射: @Namespace("/ser/shop") @Namespaces({ @Namespace("/oser/shop") }) 07