日積月累--小技巧之六

 各種各樣奇形怪狀的需求推動着技術的革新,發展,也使我們每個人都從中受益。

 發散地思考,不斷地幹掉一個又一個不懂卻又好奇的問題,那麼你就在進步。(You Are Progress。)


I. 如何在代碼中判斷請求時Ajax 請求呢, 還是普通的Http請求?

   使用審查工具,對比Ajax請求與一般請求,會發現一般Ajax請求會向請求中加入一個header: X-Requested-With : XMLHttpRequest;後端代碼通過獲取該請求頭然後判斷是否爲"XMLHttpRequest",即可達到目的。

	String x_requested_with = http_servlet_request.getHeader("X-Requested-With");
	if("XMLHttpRequest".equals(x_requested_with))
		// It is Ajax Request

II. 使用jdbc接口對數據庫進行插入操作,非常方便,而且很多時候完全足夠,不管你使用的是原生jdbc還是封裝完備的框架。但是當你有太多數據需要插入數據庫,此時使用代碼插入實在太慢(數據庫的批處理也未達到很好的效果,也許我使用有誤)。而且數據庫驅動似乎也不支持bulk insert(代碼嘗試,數據庫無效果),bulk insert也就是大批量插入:insert into table values(....), values(....), values(.....),......;這種插入語句大家一定見過很多次,使用工具如navicat, dbforge等等導出的數據庫sql文件都是這樣。這種語法好處是,一次插入足夠多的數據,每一個':'(分號)之前的語句一次性插入,效率非常高。

     將插入語句寫入文件,然後調用代碼執行操作:

	java code :
		....
	Runtime.getRuntime().exec("D:/executable.bat");
	
	executable.bat:
	mysql -uroot -proot mydatabase < D:/sql_file.sql

III. 你有這中需求嗎:顯示多張數據表獲取的數據按照真假之來排序,如:多個店鋪商家按照是否有用戶向其下過訂單爲首要條件來排序。

     可以使用Mysql的join與isnull()來完成此功能:

	select * from supplier left join order on supplier.supplier_id = order.supplier_id order by isnull(order.order_id) asc; 
	// 這樣,沒有訂單的商家就置於擁有訂單商家之上

Good Bye, Readers! See You Next Post.....




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章