各種各樣奇形怪狀的需求推動着技術的革新,發展,也使我們每個人都從中受益。
發散地思考,不斷地幹掉一個又一個不懂卻又好奇的問題,那麼你就在進步。(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.....