022-2345 2937
185 2247 0110
business@forenose.com
客服QQ:2779623375
前嗅大數(shù)據(jù)
用戶(hù)QQ群3:606835039
用戶(hù)QQ群4:795287153
客服微信
qianxiu0106
訂閱號(hào)
服務(wù)號(hào)
數(shù)據(jù)專(zhuān)欄
智能大數(shù)據(jù)搬運(yùn)工,你想要的我們都有
科技資訊
科技學(xué)院
科技百科
科技書(shū)籍
網(wǎng)站大全
軟件大全
其寬和高分別是640和498,此iframe放在一div中,該div容器的寬度是100%它會(huì)隨播放屏幕大小不同而變化。此時(shí)問(wèn)題來(lái)了,因?yàn)閕frame的寬高是一固定值,所以有時(shí)大于容器,有時(shí)小于容器。如何解決隨容器大小的改變,iframe正好撐滿(mǎn)容器中呢? 當(dāng)然,重置一下iframe的寬和高是必須的,如iframe----->width:100%;可此時(shí)問(wèn)題來(lái)了,高度的大小如何配置呢?當(dāng)然用js來(lái)控制。 這里還有一個(gè)探討問(wèn)題的前提,那就是本題 用js原生 探討而 不用 類(lèi) jquery 這些框架。 技術(shù)問(wèn)答 2016-10-31 09:27:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 這個(gè)是JS代碼,JS調(diào)用PHP,給php加上參數(shù),PHP輸出參數(shù) 首先加載了搜狐的IP獲取文件,然后在JS里面直接輸出。 這是PHP代碼,輸出傳過(guò)來(lái)的IP值 這是瀏覽器控制臺(tái)看到的,代碼已經(jīng)加載到文件里面了 但是報(bào)錯(cuò)了 技術(shù)問(wèn)答 2016-10-27 09:20:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 這是我見(jiàn)過(guò)最務(wù)實(shí)的jquery 教程,沒(méi)有所謂的幾十幾百節(jié)課,全程干貨。在此推薦給大家,要是早些看了這套視頻,哪里還用看那么多廢話(huà),哎 ... 1.jQuery快速入門(mén) 2.jQuery對(duì)文本框、多行文本框、單選按鈕、復(fù)選框、下拉框賦值 3.jQuery獲取文本框、多行文本框、單選按鈕、復(fù)選框、下拉框的值 4.點(diǎn)擊、失去和獲得焦點(diǎn)、回車(chē)、鼠標(biāo)懸停事件 5.選項(xiàng)卡 6.jQuery之Ajax異步請(qǐng)求 7.jQuery之Ajax異步處理Json數(shù)據(jù) 百度云 http://pan.baidu.com/s/1ge714UB 360網(wǎng)盤(pán) https://yunpan.cn/cRfcLSyEdWKv4 (提取碼:621f) 技術(shù)問(wèn)答 2016-10-20 11:46:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> index.js: 目錄: 想達(dá)到的目的: 訪(fǎng)問(wèn)views下的頁(yè)面(目前不需要服務(wù)端發(fā)送數(shù)據(jù),僅僅是前端用來(lái)訪(fǎng)問(wèn)靜態(tài)頁(yè)面)。 比如訪(fǎng)問(wèn) plan_detail.html 地址欄直接是 localhost:3000/plan_detail 訪(fǎng)問(wèn) page 中的頁(yè)面就是 localhost:3000/project1/aaa 主文件( index.js )里應(yīng)該怎么修改呢? 跪求大神 技術(shù)問(wèn)答 2016-08-16 11:58:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 各位大俠好,我想獲取一個(gè)文本內(nèi)所有的有用的中英文字,想過(guò)濾掉 這些[table][/table],和[td][/td]等等等類(lèi)似標(biāo)簽內(nèi)的所有內(nèi)容,正則表達(dá)式該怎么寫(xiě) 技術(shù)問(wèn)答 2016-09-17 00:52:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 大家?guī)臀铱纯?這個(gè)小游戲的代碼里面,哪個(gè)JS文件或者哪段JS代碼,是提交游戲分?jǐn)?shù)的???非常感謝 大家?guī)臀铱纯?這個(gè)小游戲的代碼里面,哪個(gè)JS文件或者哪段JS代碼,是提交游戲分?jǐn)?shù)的???非常感謝 0% ![]() ![]() 已有 1000014 人參加活動(dòng) ![]() ![]() 活動(dòng)說(shuō)明 排行榜 我的獎(jiǎng)品 獲獎(jiǎng)名單 活動(dòng)獎(jiǎng)品 一等獎(jiǎng) : 128元移動(dòng)電源 二等獎(jiǎng) : 58元6件套套杯 三等獎(jiǎng) : 10元萬(wàn)能手機(jī)殼 安慰獎(jiǎng) : 手機(jī)小支架 活動(dòng)時(shí)間 2016年9月7日 00:00 - 2016年9月11日 00:00 活動(dòng)及兌獎(jiǎng)?wù)f明 游戲達(dá)到 15秒即可獲得抽獎(jiǎng)機(jī)會(huì), 每人每日有 1 次抽獎(jiǎng)機(jī)會(huì),每人最多可抽獎(jiǎng) 6 次。 獲獎(jiǎng)后憑兌獎(jiǎng)碼聯(lián)系活動(dòng)主辦單位即可兌獎(jiǎng)。 活動(dòng)期間每人限領(lǐng)一份禮品。 暫無(wú)排名 當(dāng)前排名: (只顯示前100名)
暫無(wú)中獎(jiǎng)紀(jì)錄 尚未公布獲獎(jiǎng)名單,詳情請(qǐng)查看活動(dòng)說(shuō)明 領(lǐng)獎(jiǎng)信息 獲獎(jiǎng)?wù)咝杼顚?xiě)聯(lián)系電話(huà)方可查看兌獎(jiǎng)碼兌獎(jiǎng) 提交 暫不提交 若因未填寫(xiě)資料或資料填寫(xiě)錯(cuò)誤導(dǎo)致兌獎(jiǎng)失敗 主辦方不承擔(dān)相關(guān)法律責(zé)任 使用期限: - 商家已將該兌獎(jiǎng)碼設(shè)置為作廢 詳情請(qǐng)聯(lián)系商家 請(qǐng)先收藏兌獎(jiǎng)券,1天后可用 優(yōu)惠碼: 自定義文本(未開(kāi)啟) 自定義按鈕(未開(kāi)啟) 收藏優(yōu)惠券 兌獎(jiǎng)券詳情 有效日期 2016.03.03-2017.03.03 可用時(shí)段 周一至周日 兌獎(jiǎng)地址 地址 客服電話(huà) 1356969585 兌獎(jiǎng)須知 XXXXXX 請(qǐng)選擇投訴原因 虛假活動(dòng) 政治敏感 色情低俗 謠言 其他(收集隱私信息等) 取消 下一步 投訴成功 ![]() 投訴成功感謝你的參與,我們堅(jiān)決反對(duì)色情、暴力、欺詐等違規(guī)信息,我們會(huì)認(rèn)真處理你的投訴,維護(hù)綠色、健康的網(wǎng)絡(luò)環(huán)境 確認(rèn) 投訴 ![]() ![]() ![]() ![]() ![]() ![]() 技術(shù)問(wèn)答 2016-09-07 17:03:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 我想請(qǐng)問(wèn)一下xutils是否支持多文件上傳,這個(gè)有沒(méi)做隊(duì)列上傳處理。能告訴我具體如何操作嗎? 技術(shù)問(wèn)答 2013-12-08 11:27:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 這個(gè)人的頭像,有時(shí)候會(huì)有方形的背景(圖片左上角位置),即使多刷新幾遍,還是改不回來(lái),然后退出,重新進(jìn)去 ,又回復(fù)到正常的圓形頭像,方形背景消失,請(qǐng)問(wèn)這是為什么哦?這人頭像的imageview是一個(gè)自定義的圓形頭像imageView,這頭像使用的xutil加載頭像的辦法實(shí)現(xiàn)的,見(jiàn)下面代碼, hodler.teacherImageView.setTag(uri); bitmapUtils.display(hodler.teacherImageView, uri,new BitmapLoadCallBack @Override public void onLoadCompleted(View container, String url, Bitmap bitmap, BitmapDisplayConfig config, BitmapLoadFrom from) { if(hodler.teacherImageView.getTag().equals(url)){ hodler.teacherImageView.setImageBitmap(bitmap); } } @Override public void onLoadFailed(View container, String url, Drawable drawable) { // TODO Auto-generated method stub } }); 技術(shù)問(wèn)答 2015-05-26 12:56:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 需要用到utils3的同步訪(fǎng)問(wèn)網(wǎng)絡(luò)的方法,發(fā)現(xiàn)參數(shù)不知道怎樣設(shè)置,試了很多次都失敗了,求大神解答 < T > T getSync (RequestParams entity , Class< T > resultType) throws Throwable ;這是xutils3中同步的方法 x . http ().getSync(params , )第一個(gè)參數(shù)我知道是設(shè)置網(wǎng)址的,第二個(gè)返回的結(jié)果該如何寫(xiě)?? 技術(shù)問(wèn)答 2016-05-17 20:05:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 一個(gè)項(xiàng)目分割為若干module部分,比如item、order、cart 有一個(gè)主項(xiàng)目,apply plugin: 'com.android.application',其他modue都是apply plugin: 'com.android.library' 在application項(xiàng)目中,可以使用@ViewInject(R.id.back) 這樣得語(yǔ)法 在 library項(xiàng)目中, R.id.back無(wú)法找到資源。但是在onCreate方法里面卻可以,也就是說(shuō)無(wú)法再注解里面使用R文件。 截圖如下 技術(shù)問(wèn)答 2015-05-09 15:33:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 大家好,我正在使用Xutils進(jìn)行項(xiàng)目中的斷點(diǎn)續(xù)傳,作者在文檔中寫(xiě)到如果支持?jǐn)帱c(diǎn)續(xù)傳必須服務(wù)器端支持RANGE,在運(yùn)行過(guò)程中如果不斷點(diǎn)正常下載,但是只要一暫停,回調(diào)onloading的total值就會(huì)變大,實(shí)際斷點(diǎn)續(xù)傳功能已經(jīng)實(shí)現(xiàn),只是total變大,導(dǎo)致進(jìn)度條顯示,先回退,然后再前進(jìn),最后還不能達(dá)到滿(mǎn)進(jìn)度,但是下載已經(jīng)完成,我懷疑是服務(wù)器端和xutils的接收發(fā)送的格式不正確導(dǎo)致的,請(qǐng)問(wèn)有沒(méi)有人能為我指明方向,感激不盡。 技術(shù)問(wèn)答 2014-11-18 12:18:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @Jack_1900 你好,想跟你請(qǐng)教個(gè)問(wèn)題:你好請(qǐng)問(wèn)下,xutils怎么添加自己的緩存 技術(shù)問(wèn)答 2015-02-03 15:37:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 我在使用android 的開(kāi)源框架xUtils時(shí) 上傳一個(gè)30M大小的視頻文件的時(shí)候 上傳過(guò)程中會(huì)網(wǎng)絡(luò)連接中斷 xUtils的版本是2.6.14版本 這是報(bào)錯(cuò)信息 有大神幫我找下原因么 HttpUtils https = new HttpUtils ( 600 * 1000 ) ; 網(wǎng)絡(luò)連接超時(shí)時(shí)間我寫(xiě)上去了 然后 API文檔里面的方法我也調(diào)用過(guò) 還是沒(méi)什么用 技術(shù)問(wèn)答 2016-05-31 11:38:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 用get請(qǐng)求下載音樂(lè),路徑是 String mFileName = "http://69.165.75.47/ 光輝歲月 .mp3" ; 05-11 04:21:27.633 3671-3671/com.example.wulsh.myapplication I/CMCC: onError,Not Found 05-11 04:21:27.633 3671-3671/com.example.wulsh.myapplication I/CMCC: onFinished 怎么解決??? 技術(shù)問(wèn)答 2016-05-11 16:32:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 最近在做一個(gè)Android——Web兩邊關(guān)聯(lián)的點(diǎn)菜APP,在A(yíng)ndroid端利用httpUtils上傳菜單的時(shí)候(已經(jīng)組織為Json數(shù)據(jù)形式,檢查內(nèi)容正確),不知道在web段的相應(yīng)servlet里面如何獲取到該Json并且解析,請(qǐng)路過(guò)的各位幫一下忙,謝謝! Android端代碼: public void sendHTTPRequest(String url, int progressStringID, JsonObject jsonObject) { // TODO Auto-generated method stub initDiaglog(progressStringID); RequestParams params = new RequestParams("UTF-8"); try{ params.setBodyEntity(new StringEntity(gson.toJson(jsonObject),"UTF-8")); params.setContentType("application/json"); }catch(UnsupportedEncodingException e){ e.printStackTrace(); } http.send(HttpMethod.POST, url, new RequestCallBack 對(duì)應(yīng)的MenuServlet的doPost方法里面該怎么寫(xiě)???(現(xiàn)在已經(jīng)提示發(fā)送成功了,但是我不知道怎么接收到) @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //這里應(yīng)該怎么寫(xiě),不知道如何獲得這個(gè)Json形式的參數(shù) } 技術(shù)問(wèn)答 2016-05-11 15:55:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 最近在學(xué)習(xí)使用xutils,這個(gè)問(wèn)題困擾我好久,應(yīng)該是個(gè)小問(wèn)題但是就是不知道如何解決,網(wǎng)上也搜不到解決方法,請(qǐng)大家?guī)蛶兔 問(wèn)題具體描述:做一個(gè)app開(kāi)發(fā),android端用戶(hù)輸入用戶(hù)名和密碼登錄,傳值到tomcat那面,servlet連數(shù)據(jù)庫(kù)進(jìn)行核驗(yàn),這些都弄好了, 就是在進(jìn)行核驗(yàn)之后需要返回一個(gè)布爾值,從服務(wù)器端傳到android端,如何編寫(xiě)代碼才能讓android端的HttpUtils里面的send方法的callback里面的onSuccess方法的參數(shù)接收到? 具體代碼如下: android端: HttpUtils http = new HttpUtils(); http.send(HttpMethod.POST, url, new RequestCallBack Servlet端: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String uName = request.getParameter("username"); String uPwd = request.getParameter("password"); UserEntity user = new UserEntity(); user.setUsername(uName); user.setPassword(uPwd); boolean login_bool = checkUserService.check(user) } 就是那個(gè)login_bool布爾值?。?! 我在使用HttpUtils開(kāi)源框架的情況下該怎么編寫(xiě)代碼才能讓其接收到啊?我看源碼沒(méi)怎么看懂,感覺(jué)應(yīng)該是個(gè)很小的工作,就是不知道怎么弄, 或者說(shuō)一直弄不明白o(hù)nSuccess方法中的ResponseInfo參數(shù)到底是指什么,如何在服務(wù)器端把要傳遞的信息寫(xiě)進(jìn)去??? 求幫助,不勝感激?。? 技術(shù)問(wèn)答 2016-04-22 18:47:05 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> dbutils保存user的時(shí)候報(bào) field id not found,我的user是有id屬性的啊 技術(shù)問(wèn)答 2016-03-18 17:10:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 昨天寫(xiě)了一個(gè)通過(guò)解析JSon數(shù)據(jù)顯示ListVew列表的效果,結(jié)果因?yàn)閍ndroid不能在主線(xiàn)程里進(jìn)行http請(qǐng)求,所以想利用Xutil來(lái)完成,我按照教程寫(xiě)了一個(gè)最簡(jiǎn)單的get方法,代碼如下package com.example.demo2; import com.example.demo2.R; import com.lidroid.xutils.HttpUtils; import com.lidroid.xutils.exception.HttpException; import com.lidroid.xutils.http.ResponseInfo; import com.lidroid.xutils.http.callback.RequestCallBack; import com.lidroid.xutils.http.client.HttpRequest.HttpMethod; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); HttpUtils http = new HttpUtils(); http.send(HttpMethod.GET, "http://www.imooc.com/api/teacher?type=4&num=30", new RequestCallBack 可是responseInfo一直報(bào)錯(cuò),報(bào)錯(cuò)信息是: 開(kāi)始懷疑是因?yàn)閖ar包沒(méi)有導(dǎo)入,但是看了一下確實(shí)在里面 也試過(guò)Clean,沒(méi)有用。 求大神抽時(shí)間看一看,謝謝! 技術(shù)問(wèn)答 2016-03-21 16:54:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @wyouflf 你好,想跟你請(qǐng)教個(gè)問(wèn)題: Xutils3 里面params.setSslSocketFactory(sslSocketFactory); 這個(gè) sslSocketFactory 如何構(gòu)建啊 是自制證書(shū)的嗎 證書(shū)怎么放進(jìn)去??? 技術(shù)問(wèn)答 2016-02-12 20:52:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 我現(xiàn)在做一個(gè)的一個(gè)項(xiàng)目中需要保存,一個(gè)對(duì)象,但是 對(duì)象中含有一個(gè)對(duì)象,現(xiàn)在的問(wèn)題的是,其他的字段屬性都能保存上,就其中的對(duì)象保存不了,怎么做 技術(shù)問(wèn)答 2016-03-02 19:33:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @ViewInject (R.id. start_logo ) LinearLayout startLogo ; startLogo .startAnimation(logoAs) ; java.lang.RuntimeException: Unable to start activity ComponentInfo{com.cnvp.zstunews/com.cnvp.zstunews.ui.Start}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.LinearLayout.startAnimation(android.view.animation.Animation)' on a null object reference 這是為啥呢?為啥呢?想不明白了。。。 技術(shù)問(wèn)答 2015-05-16 23:12:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @wyouflf 你好,想跟你請(qǐng)教個(gè)問(wèn)題:在xutils中 如何在send(HttpMethod.GET,url,new RequestCallBack 我目前用的方法是在onFailure方法中HttpResponse resp=http.getHttpClient().execute(hg); 再執(zhí)行一次, 請(qǐng)問(wèn)有沒(méi)有只需要執(zhí)行一次的方法 謝謝! 技術(shù)問(wèn)答 2015-04-17 10:12:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> android那個(gè)使用這個(gè)它是這樣給我傳值的。 params.addBodyParameter("userId", "1"); params.addBodyParameter("title", "123"); params.addBodyParameter("content", c); 我是這樣接受參數(shù)的哪里總是提示網(wǎng)絡(luò)異常:請(qǐng)問(wèn)這樣有問(wèn)題嗎? @RequestMapping(value = "add", method = RequestMethod.POST) @ResponseBody public Map 技術(shù)問(wèn)答 2014-09-14 00:02:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> String uri=TeacherConstant.SERVICEADDRS_NEW+classCircleDynInfoList.get(position).getFace(); hodler.teacherImageView.setTag(uri); bitmapUtils.configDefaultLoadFailedImage(R.drawable.load_failed_bit); bitmapUtils.configDefaultLoadingImage(R.drawable.s5_small); bitmapUtils.configDefaultBitmapConfig(Bitmap.Config.RGB_565); bitmapUtils.displayRound(hodler.teacherImageView, uri); 我要實(shí)現(xiàn)一個(gè)類(lèi)似班級(jí)圈的東東,用listview加載信息,每條信息里面有個(gè)老師或?qū)W生頭像 我現(xiàn)在發(fā)現(xiàn)一個(gè)問(wèn)題,每次給這些信息評(píng)論的時(shí)候,這些頭像就會(huì)閃爍下,請(qǐng)問(wèn)有沒(méi)有辦法解決? 難道僅僅是內(nèi)存吃緊的問(wèn)題造成額? 技術(shù)問(wèn)答 2015-03-19 11:14:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @wyouflf 你好,在xUtils3 中我找不到download以及 onloading 方法了,下載功能要怎么用呢? 技術(shù)問(wèn)答 2016-01-25 13:31:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 一個(gè)朋友有這樣一個(gè)SQL查詢(xún)需求: 有一個(gè)登錄表(tmp_test),包含用戶(hù)ID(uid)和登錄時(shí)間(login_time)。表結(jié)構(gòu)如下: *************************** 1. row *************************** Field: uid Type: int(10) unsigned Null: NO Key: MUL Default: NULL Extra: *************************** 2. row *************************** Field: login_time Type: timestamp Null: NO Key: MUL Default: 0000-00-00 00:00:00 Extra: 問(wèn)如何查詢(xún)出所有在某一段時(shí)間內(nèi)(如:2012-1-1至2012-1-17)連續(xù)7天都有登錄的用戶(hù)。 在寫(xiě)這個(gè)SQL時(shí),發(fā)現(xiàn)一些很有意思東西,也許對(duì)大家寫(xiě)SQL有幫助,因此記錄一下。 - 基本思路 Loop Join 首先想到的思路是一個(gè)類(lèi)似于Loop Join的方法: A. 取出2012-1-1到 2012-1-11 的每一條記錄. B. 對(duì)取出的每一條記錄,再去表中查詢(xún)這個(gè)用戶(hù)的接下來(lái)6天的記錄。 如果總數(shù)為6條記錄,則滿(mǎn)足連續(xù)7天的條件 - Range Join Loop Join的思路可以通過(guò)一個(gè)Join語(yǔ)句來(lái)實(shí)現(xiàn)。姑且稱(chēng)之為Range Join。通常join時(shí),使用的都是 等值join. 如果join列的值是唯一的,那么就是左表的一條記錄對(duì)應(yīng)右表的一條記錄。而Range Join 中,左表的一行數(shù)據(jù)對(duì)應(yīng)右表的一個(gè)范圍內(nèi)的所有記錄。 SQL 語(yǔ)句為: SELECT DISTINCT t.uid FROM tmp_test AS t JOIN tmp_test AS t1 ON date(t.login_time) + 1 <= date(t1.login_time) AND date(t.login_time) + 7 > date(t1.login_time) AND t.uid = t1.uid WHERE t.login_time BETWEEN ’2012-1-1 00:00:00′ AND ’2012-1-11 23:59:59′ AND t1.login_time >= ’2012-1-2′ AND t.login_time < ’2012-1-18′(可去掉) - COUNT(DISTINCT) “計(jì)算連續(xù)7天”,可以通過(guò)GROUP BY分組和COUNT()來(lái)完成。因?yàn)橐粋€(gè)用戶(hù)在1天內(nèi)可能會(huì)有多次登錄, 這里需要使用(COUNT DISTINCT). SQL 語(yǔ)句為: GROUP BY t.login_time, t.uid HAVING COUNT(DISTINCT date(t1.login_time))=6 - BIT_OR 考慮到DISTINCT操作需要緩存數(shù)據(jù),就想到了用bit邏輯運(yùn)算(可能會(huì)效率高一些)。因?yàn)檫B續(xù)的七天 與第一天的差分別為,1,2,3,4,5,6,7.可以分別用1-7bit位來(lái)表示。根據(jù)這個(gè)特點(diǎn),可以對(duì)分組中 的每一行進(jìn)行或(|)運(yùn)算.如果最后的值等于b’1111110′(6個(gè)1).那么就是連續(xù)的7天。這個(gè)辦法可以 避免DISTINC操作。沒(méi)想到MySQL中真的有了bit操作的聚合函數(shù)。BIT_OR就是我們要用的。 SQL 語(yǔ)句為: GROUP BY t.login_time, t.uid HAVING BIT_OR(1 << datediff(t1.login_time, t.login_time)) = b’1111110′; NOTE: 從測(cè)試結(jié)果看,沒(méi)有索引時(shí)BIT_OR要比DISTINCT好一點(diǎn)點(diǎn),不是非常明顯。當(dāng)DISTINCT的 字段上有索引時(shí),要比BIT_OR要好一點(diǎn)點(diǎn). - 去掉Range Join 雖說(shuō)上面的思路實(shí)現(xiàn)了這個(gè)查詢(xún)要求,但是由于使用了Range Join,效率并不好。在對(duì)uid建索引的情 況下,大約需要3.5s(總共約50000條記錄). 有沒(méi)有更好的方法呢? 受BIT_OR的啟發(fā),可以通過(guò)單表掃描,用bit位來(lái)記錄每個(gè)用戶(hù)2012-1-1至2012-1-17是否有登錄。 然后根據(jù)這個(gè)值來(lái)判斷是否有連續(xù)7天的情況。 我們需要一個(gè)輔助的函數(shù)來(lái)進(jìn)行bit的運(yùn)算: DELIMITER | /* 判斷一個(gè)Bit序列中,是否存在若干個(gè)連續(xù)的1 */ /* 參數(shù)bits: bit序列*/ /* 參數(shù)trait: 指定的若干連續(xù)的1.如b’111111‘ */ CREATE FUNCTION bits_find_N1(bits BIGINT, trait BIGINT) RETURNS BOOL BEGIN WHILE bits <> 0 DO IF ((bits & trait) = trait) THEN RETURN TRUE; END IF; SET bits = bits >> 1; END WHILE; RETURN FALSE; END| DELIMITER ; SQL 語(yǔ)句為: SELECT uid AS bit FROM tmp_test WHERE login_time BETWEEN ’2012-1-1 00:00:00′ AND ’2012-1-17 23:59:59′ GROUP BY uid HAVING bits_find_N1(BIT_OR(1 << datediff(login_time, ’2012-1-1′)), b’1111111′) IS TRUE; 這個(gè)語(yǔ)句效率還是比較好的,即使不對(duì)uid建索引,也只需約0.27s - 超高效率的語(yǔ)句 下面是另一個(gè)朋友寫(xiě)的SQL,雖然有點(diǎn)復(fù)雜,但是效率超高,只需要約0.17s是這樣的 SET @wy=0; SELECT DISTINCT uid FROM (SELECT MAX(date)-MIN(date) less,uid FROM (SELECT date-rn diff, uid, date, rn FROM (SELECT @wy:=@wy+1 rn, uid, datediff(login_time,’1971-01-01′) date,login_time FROM (SELECT date(login_time) login_time, uid FROM tmp_test WHERE login_time>=’2012-01-01 00:00:00′ AND login_time <’2012-01-18 00:00:00′ GROUP BY uid, date(login_time) ORDER BY uid, date(login_time) )x )x )x GROUP BY diff,uid )x WHERE less>=6; 原文地址 一個(gè)有趣的SQL查詢(xún) 技術(shù)問(wèn)答 2012-03-08 13:58:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 實(shí)現(xiàn)協(xié)辦功能,在副總節(jié)點(diǎn),副總可以自己直接辦理,如果不能處理,需要請(qǐng)示總經(jīng)理,總經(jīng)理審批后副總辦理 技術(shù)問(wèn)答 2016-05-30 09:43:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> jboot使用websocket的時(shí)候怎么在websocket中獲取HttpSession 技術(shù)問(wèn)答 2020-04-20 16:44:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 我這邊升級(jí)jboot 1.1.2到最新的3.1.3的話(huà)下面這個(gè)注解就用不了了,需要用什么來(lái)代替 ```java @PropertyConfig( prefix = "jboot.admin.app" ) ``` 技術(shù)問(wèn)答 2020-03-26 15:57:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 1、Jwt + shiro 如何去構(gòu)建鑒權(quán) ? JwtShiroBridge目前提供了 subject的構(gòu)建,相當(dāng)于解決了認(rèn)證問(wèn)題。但是鑒權(quán)的部分并不包括。我能想到的思路是,在認(rèn)證服務(wù)中構(gòu)建jwt后,會(huì)將權(quán)限/角色保存在 token中,需要做 subject.login 去解決授權(quán),但是總感覺(jué)這樣實(shí)現(xiàn)好傻。。每次請(qǐng)求都這么重,是否有其他實(shí)現(xiàn)思路 ? 2、如果我使用 jwt + shiro 的話(huà),我并不想讓服務(wù)器 去構(gòu)建 session,是否可以控制一下下。 技術(shù)問(wèn)答 2018-03-22 12:03:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 之前上班的公司全都是使用自己架構(gòu)搭建的框架,一開(kāi)始也是問(wèn)架構(gòu)師為什么不用spring的全家桶什么的。架構(gòu)給我講是因?yàn)椴缓糜茫ê髞?lái)覺(jué)得是spring太重了,涉及很多但是大部分還是用不到,最多用到了spring bean注入這一塊,aop也是動(dòng)態(tài)代理改的),所以之前開(kāi)發(fā)基本不會(huì)特意使用三方的東西,除了ibatis,mysql,redis之類(lèi)的。比如分庫(kù)分表什么的都是自己寫(xiě)的 '中間件' 。也在開(kāi)源中國(guó)發(fā)布過(guò)。具體就是公司自己能用,夠用。 但是現(xiàn)在大部分公司去面試多多少少會(huì)問(wèn)spring boot,cloud,這些知識(shí)點(diǎn)自己開(kāi)發(fā)中其實(shí)根本涉及的很少(這里就要說(shuō)了,不是說(shuō)自己的時(shí)間不去學(xué)習(xí)這些東西,而是學(xué)習(xí)的東西能不能直接拿出來(lái)實(shí)戰(zhàn)并不是一些基礎(chǔ)的知識(shí)),所以面試過(guò)程中其實(shí)多多少少帶點(diǎn)虛的東西。 像jfinal 或者jboot社區(qū)活躍度還是有點(diǎn)的,但是像之前公司搭建的框架根本不去做為宣傳什么的,而是因?yàn)榧軜?gòu)自己明白這些原理,所以自己有時(shí)候得去翻這些源碼。但是開(kāi)發(fā)任務(wù)重啊?。?! 主要想知道像這種情況怎么去權(quán)衡,java技術(shù)棧真的很多,開(kāi)發(fā)任務(wù)真的很重! 技術(shù)問(wèn)答 2019-10-31 13:59:00 HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 訂閱服務(wù)重啟過(guò)程,消息丟失問(wèn)題; 場(chǎng)景:支付模塊監(jiān)聽(tīng)到支付成功通知后,使用mq通知訂單模塊更改訂單狀態(tài);此時(shí)訂單模塊在重啟,會(huì)造成消息丟失訂單狀態(tài)沒(méi)有正常更新 技術(shù)問(wèn)答 2019-06-03 11:32:00 |
---|