各种各样奇形怪状的需求推动着技术的革新,发展,也使我们每个人都从中受益。
发散地思考,不断地干掉一个又一个不懂却又好奇的问题,那么你就在进步。(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.....