日常工作筆記(持續更新中。。)

vampire_Violet發表於2018-06-04

32.MySQL查詢每天早上9點到昨天9點的資料

1.獲取當天日期零點的字串:SELECT DATE_FORMAT(NOW(),'%Y%m%d')
2.將字串轉換為日期格式:SELECT STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d')
3.使用日期新增間隔DATE_ADD()函式,獲取當天0點的第前15個小時:SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL -15 HOUR);
4.獲取當天0點的第後9個小時:SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL 9 HOUR);
最終結果:SELECT * FROM t_xyx_order WHERE createtime >= (SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL -15 HOUR)) AND createTime <= (SELECT DATE_ADD(STR_TO_DATE(DATE_FORMAT(NOW(),'%Y%m%d'),'%Y%m%d'),INTERVAL 9 HOUR))

31.action返回頁面時的js、css樣式失效問題(單獨訪問頁面沒有樣式問題)

原因:action跳轉後的url會根據名稱空間,自動跳轉到名稱空間子目錄,使得當前引用的css和js查詢不到,從而失效
解決辦法;先將struts2.xml名稱空間改寫為“/”,不再使用自定義的名稱空間
然後在jsp頁面獲取根路徑 basePath,
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
	//String ticket=request.getParameter("ticket");
	String channel = request.getParameter("channel");
	//String company = request.getParameter("company");
	//String center = request.getParameter("center");
	//String wgName = request.getParameter("wgName");
	//String pageName = request.getParameter("pageName");
	//basePath = "https://openapp.10010.com/bj/";
	//basePath = "https://ecstest0517.10010.com/bj/";
%>
<base href="<%=basePath%>">
<script type="text/javascript" src="<%=basePath%>guoman/res/jquery-1.7.2.js"></script>

30.js:點選切換

$('#protocol_link').click(function(){
		window.open($("base").attr("href")+"single/web/protocol.jsp");
		$('#protocolCheck').removeAttr('disabled');
		var judge = $('#protocolCheck').val();
		$('#protocolCheck').click(function(event){
			if(judge){
				judge = 0;
				$('#protocolCheck').attr('checked','checked');
			}else{
				judge = 1;
				$('#protocolCheck').attr('checked',false);
			}
		});
	});

29.Uncaught TypeError: $(…).live is not a function

on() 方法在被選元素及子元素上新增一個或多個事件處理程式。
自 jQuery 版本 1.7 起,on() 方法是 bind()、live() 和 delegate() 方法的新的替代品。該方法給 API 帶來很多便利,我們推薦使用該方法,它簡化了 jQuery 程式碼庫。
注意:使用 on() 方法新增的事件處理程式適用於當前及未來的元素(比如由指令碼建立的新元素)。
提示:如需移除事件處理程式,請使用 off() 方法。
提示:如需新增只執行一次的事件然後移除,請使用 on() 方法。
解決辦法:在專案中所有使用jquery的live()方法都修改成on()方法,使用方法相同,只用修改方法名即可。

28.jsp引入頁面亂碼,不修改子頁面的編碼格式的方法

strtus2,s:include 父頁面與匯入的子頁面編碼格式必須一致,而使用jsp動態引入,子父頁面編碼 pageEncoding="UTF-8" 不必一致:<jsp:include   page="head.jsp"/>
原理:jsp include指令告訴容器:先複製被包含檔案彙總的所有內容,再把它貼上到這個檔案中。其中<jsp:include   page="head.jsp" flush="false"/> ,flush屬性預設 flush="false" 不會清理快取資料

27.MySQL預設時間設定

MySQL為時間型別:timestamp 設定預設值為當前時間:CURRENT_TIMESTAMP

26.java獲取月末最後一天

	/**
	* 判斷是否本月的最後一天
	*
	* @return
	*/
	public static String isMonthLastDay() {
		Date a = new Date();
        Calendar b = Calendar.getInstance();
        b.setTime(a);
        int lastDay = b.getActualMaximum(Calendar.DAY_OF_MONTH);
        int now = b.get(Calendar.DAY_OF_MONTH);
        
        String str = lastDay == now ? "0" : "1";
        if(str.endsWith("0")){
        	return  b.get(Calendar.HOUR_OF_DAY) >= 17 ? "0" : "1";
        }else{
        	return "1";
        }
	}

25.js獲取月末最後一天的12點前

		//當前時間
		var newDate = new Date();
	   		var str =+ newDate.getFullYear() + "-";
		     str += (newDate.getMonth()+1) + "-";
		     str += newDate.getDate() +" ";
		     str += newDate.getHours()+":";
		     str += newDate.getMinutes()+":";
		     str += newDate.getSeconds();
		   //第二個月一號的時間
		var oldDate = new Date();     
			var stt =+ oldDate.getFullYear() + "-";
		     stt += (oldDate.getMonth()+2) + "-";
		     stt += '01' +" ";
		     stt += '00'+":";
		     stt += 0+":";
		     stt += '00';
		   //當前時間的毫秒數
		var newD = Date.parse(str);
		//下個月1號的毫秒數
		var oldD = Date.parse(stt);
		
		if(newD <oldD-43200000){//12個小時的毫秒數
			//alert1("當前時間在月末最後一天的19點前,可以正常辦理");
		}else{
			alert1("親,注意:每月最後一日中午12點後在本頁面申請訂購的使用者,流量包將有可能於次次月才能生效,請酌情安排好申請訂購的時間。");

		}

24.提升css樣式優先順序,方法:新增 !important;

input {
	border: solid 1px #bbbbbb !important;
	background: white !important;
}

23.從路徑中獲取檔名,再獲取檔名的後八位

有字尾名:String str = path.substring(path.lastIndexOf("/") + 1, path.length());
沒有字尾名:String name = str.substring(0, str.lastIndexOf("."));
獲取名稱中後八位作為日期:String dada=name.substring(name.length()-8);

22.ajax請求post方法,本地專案沒問題,伺服器上報500錯誤

原因竟然是:方法中有一個controller呼叫另一個controller,一個service呼叫另一個controller造成,修改後成功

21.java.lang.IllegalStateException: Annotation-specified bean name ‘xyxDao’ for bean class [com.surekam.xiaoyuanxing.dao.XyxDao] conflicts with existing, non-compatible bean definition of same name and class [com.surekam.xiaoyuanxing.dao.impl.XyxDaoImpl]

解決辦法;註解名稱相同,修改為不一樣

20.按行讀後,將每行的字串按照“|”分割,出現bug:列印出結果是按照每個字元分割

解決辦法;加轉義“\\|”

19.頁面報錯net::ERR_ABORTED

原因:找不到引用的js
影響元素:js路徑問題,js載入順序問題,
解決辦法:改路徑,除錯載入順序,都不行的話,不要引用js檔案,直接將js中的方法提取到頁面上

18.js獲取td,span等的值

var tel = document.getElementById("con_tel").innerText;

17.a標籤樣式修改為不可用

加入href =”javascript:return false;” 可以實現不可點選功能 
$('#chexiao_order').removeAttr('onclick');移除點選事件
加入style=”opacity: 0.2”可以實現變灰的效果

16.修改資料庫相應欄位的屬性,選擇charset為utf-8,collation為utf8-unicode-ci

Caused by: java.sql.SQLException: Incorrect string value:
'\\xE5\\x91\\xA8\\xE6\\ --異常

15.JS獲取select下拉框選中的name1屬性的值:

var cloud\_type = \$("\#speed").find("option:selected").attr("name1");

14 上傳圖片時,手機端支援開啟相簿和拍照

可行方式:
&lt;input class="weui-uploader\_\_input" type="file" multiple
accept="image/\*" name="file13" id="file13"&gt;

不可行方式:
&lt;!-- &lt;input class="weui-uploader\_\_input" type="file"
capture="camera" accept="image/\*" name="file13" id="file13"&gt; --&gt;

13.英文姓名不能為空且不能包含中文

if (ip\_name == "" || /.\*\[\\u4e00-\\u9fa5\]+.\*\$/.test(ip\_name)) {

alert1("英文姓名不能為空且不能包含中文");

return;

}

12…js判斷輸入的只能是字母和數字

var reg = /\^\[0-9a-zA-Z\]+\$/

function jiaoyan(){

var str = \$.trim(\$("\#2\_idcard").val());

if(!reg.test(str)){

alert("您輸入的統一社會信用程式碼不是數字或者字母")

return;

}

}

11.將查詢到的結果集集合都合併放到一個為逗號隔開的新欄位

(SELECT GROUP\_CONCAT(StateTag) FROM t\_wst\_order\_status AS B WHERE
B.OrderId = '011WBSWEB20180403111205582') AS stateTag

10.跳轉相對路徑

href="/bj/cloudspecialline/app/header.jsp"

9.java.lang.NumberFormatException: For input string: “14757272012”

原因&解決辦法:Integer在32位的編譯環境下,儲存長度為32位。即-2\^31\~2\^31-1;
即-2,147,483,648\~2,147,483,647,此時將Integer換成BigInteger型別,問題解決

8.js中將字串型別轉換為數字型別進行計算

js中變數為弱型別,可以直接進行運算:cloud\_type = cloud\_type \* 1 +15;

7.

(1)Unable to instantiate Action

(2)java.lang.ClassNotFoundException

(3)ResourceBundle \[i18n.SecurityMessage\] not found for MessageSource:

除了配置錯誤,還要檢查往後臺伺服器上部署的時候class檔案位置是否正確(\\web\\WEB-INF\\classes\\com\\surekam\\)

6.MYSQL中批量替換某個欄位的部分資料

UPDATE t\_wt\_csl\_order SET ddgj\_trade\_id = REPLACE(ddgj\_trade\_id,
'AA', NULL) \#批量替換:將order表中的BB替換為null

5.按照自定義的時間格式查詢一段時間的下單數量,如:按照每天的小時

SELECT DATE_FORMAT(order_time,'%Y-%m-%d %H') days,COUNT(1) COUNT FROM t_wt_wbsp_main_sheet WHERE order_time >= '2018-04-01' AND order_time <= '2018-04-30' GROUP BY days ;

4.

String dateStr=new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new
Date());

3.ReadOnly和Disabled的作用是使使用者不能夠更改表單域中的內容.

但是二者還是有著一些區別的:

1、Readonly只針對input(text/password)和textarea有效,而disabled對於所有的表單元素有效,包括select,radio,checkbox,button等。

2、在表單元素使用了disabled後,我們將表單以POST或者GET的方式提交的話,這個元素的值不會被傳遞出去,而readonly會將該值傳遞出去

常用情況:

1、在某個表單中為使用者預填了某個唯一識別程式碼,不允許使用者改動,但是在提交時需要傳遞該值,此時將屬性設定為readonly

2、當使用者正式提交了表單後需要等待管理員的資訊驗證,不允許使用者再更改表單中的資料,而是隻能夠檢視,由於disabled的作用元素範圍大,所以此時應該使用disabled,但同時應該注意的是要將submit
button也disabled掉,否則只要使用者按了這個按鈕,如果在資料庫操作頁面中沒有做完整性檢測的話,資料庫中的值會被清除。

3、在使用者按了提交按鈕後,利用javascript將提交按鈕disabled掉,可防止在網路條件比較差的環境下,使用者反覆點選提交按鈕導致資料冗餘地存入資料庫

2.mysql查詢欄位值為空的語法:

where 欄位名 is null

1.jquery定位到某一行:

$("input[name='Operator_card_num']")[0].focus();

相關文章