http://blog.csdn.net/hjxgood/article/details/45170349 http://www.cnblogs.com/geekdc/p/5213079.html http://www.2cto.com/database/201703/611506.html https://www.oschina.net/code/snippet_2395251_51563