主頁 > 資料庫 > 如何把excel匯入到資料庫中

如何把excel匯入到資料庫中

2020-09-17 07:19:49 資料庫

目的:通過PB匯入excel到相應的資料庫表中。

思路:先選擇excel檔案,加載到DataWindow,再插入到表中。

這個思路是否可行?

uj5u.com熱心網友回復:

按這個思路,
我建了一個應用包含一個事件 
open(w_main) //w_main
一個w_main視窗
有一個DataWindowd控制元件w_product
一個cb_1按鈕 clicked事件:
long   numcols,numrows,c,r
OLEObject   xlapp,xlsub
int   ret
//定義變數 

numcols   =   long(dw_product.Object.DataWindow.Column.Count) 
//設定行號和列號 
numrows   =   dw_product.RowCount() 
//獲得行數 
xlApp   =   Create   OLEObject 
//創建OLE物件 

ret   =   xlApp.ConnectToNewObject(   "Excel.Sheet "   ) 
if   ret   <   0     then 
MessageBox( "連接Excel程式失敗! ",string(ret)) 
        return 
end   if 
//連接Excel,并檢驗回傳值 

xlApp.Application.Workbooks.Open( "E:\ybb.xls ") 
//打開一個特定的Excel檔案 
xlApp.Application.Visible   =   true 
//使該Excel檔案可視 
xlsub   =   xlapp.Application.ActiveWorkbook.Worksheets[1] 
//確定第一個作業簿 

For   c   =   1   to   numcols 
For   r   =   1   to   numrows 
          xlsub.cells[r,c]   =   dw_product.object.data[r,c]     
      Next 
Next 
//回圈發送資料 

xlApp.DisConnectObject() 
Destroy   xlapp 
//斷開連接 



運行報錯:
PowerBuilder Application Execution Error (R0002)
---------------------------
Application terminated.

Error: Null object reference at line 6 in clicked event of object cb_1 of w_main.

uj5u.com熱心網友回復:

給你一個函式,直接呼叫即可匯入xls、text或dbf檔案中的資料。當然前提是資料視窗列序要和excel檔案的列序相同。你可以自己起個函式名:
string path,filename
integer value,result,li_startrow

//ab_flag boolean 傳入是否有標題行,有=true,無=false
//idw_dw datawindow 資料視窗
//回傳 long

if ab_flag then
li_startrow = 2
else
li_startrow = 1
end if

value = GetFileOpenName("請選擇欲匯入的檔案",path,filename,"xls","xls Files (*.xls),*.xls,Text Files (*.TXT),*.TXT,DBF Files (*.DBF),*.DBF")

if value<>1 then return -1

if right(path,3)='xls' or right(path,3)='XLS' then 
 OLEObject ObjExcel
 ObjExcel = CREATE OLEObject
 result = ObjExcel.ConnectToNewObject( "excel.application")
  if result <> 0 then 
  messagebox("資訊提示","連接EXCEL失敗,請檢查計算機中是否安裝了EXCEL!") 
   Return  -1
  else
   ObjExcel.Workbooks.Open(path)
  
//   ObjExcel.activeworkbook.sheets("sheet2").select

   string ls_copy
  int i
     if ObjExcel.ActiveSheet.Cells.Copy = true then 
          ObjExcel.Application.Visible = false
          idw_dw.SetTransObject(SQLCA)
          i =  idw_dw.ImportClipboard(li_startrow)     //將系統剪切版上的內容粘貼到資料視窗中,其中2為起始行引數
 choose case i
case -1
MessageBox('警告','Excel檔案中沒有記錄行或者起始行值大于字串中的行數。')
case  -3
MessageBox('警告','無效變元。')
case -4
MessageBox('警告','無效輸入。')
case -13
MessageBox('警告','輸入的資料不支持資料視窗的型別。')
case -14
MessageBox('警告','錯誤決議資料視窗嵌套。')
end choose
          Clipboard("")                 //清空剪切版上的內容
          ObjExcel.Quit()
          ObjExcel.DisconnectObject()     //斷開與OLE的連接
          Destroy ObjExcel 
 return i
      else
          messagebox("提示","您的EXCEL不支持此功能,請檢查EXCEL版本,建議使用OFFICE-EXCEL")
     end if
end if 
elseif right(path,3)='txt' or right(path,3)='TXT' then
i = idw_dw.importfile(text!,path,li_startrow)
return i
elseif right(path,3)='dbf' or right(path,3)='DBF' then
  i = idw_dw.importfile(DBase3!,path,li_startrow)
 return  i
else
return -1
end if

uj5u.com熱心網友回復:

序號 功能 代碼案例
"String ls_FileName , ls_DirFile
string is_dir
integer li_value
li_value = GetFileOpenName(""請選擇excel檔案名"", ls_DirFile, ls_FileName, ""xls"", ""Excell Files (*.xls), *.xls"")"
"IF li_value=https://bbs.csdn.net/topics/1 THEN
 is_dir = left(ls_DirFile,pos(ls_DirFile,ls_FileName) - 1)
 sle_EA.text = ls_DirFile 
 //獲取Excel檔案名稱
 If lastpos( ls_DirFile, '.xls'  ) = 0 Then
 End If  
 is_xlsName = midw( ls_DirFile, lastpos( ls_DirFile, '\' )+1, lastpos( ls_DirFile, '.xls'  ) - lastpos( ls_DirFile, '\' ) - 1 )"
"OLEObject  OLE_ExcelA  
OLE_ExcelA = Create  OLEObject  
long ll_error
ll_error = OLE_ExcelA.ConnectToNewObject(""excel.Application"")
OLE_ExcelA.visible = true "
"OLE_ExcelB.Workbooks.Open( sle_eb.text )
mle_2.text = mle_2.text + '成功打開 '+ sle_eb.text +char(13)+char(10)
ll_sumSheet = OLE_ExcelB.Worksheets.count
If ll_sumsheet < 1 Then
 OLE_ExcelB.quit() 
 OLE_ExcelB.Workbooks.close 
 OLE_ExcelB.DisConnectObject()
 destroy  OLE_ExcelB;"
"  ll_rowA = OLE_ExcelA.ActiveWorkbook.Activesheet.UsedRange.rows.Count 
 ll_columnA = OLE_ExcelA.ActiveWorkbook.Activesheet.UsedRange.columns.Count"
"ld_sph = double( OLE_ExcelA.cells(  ll_num , ll_start_l ).value )  
  ld_cyl = double( OLE_ExcelA.cells(  ll_num , ll_start_l +1 ).value )"
"OLE_ExcelA.quit() 
OLE_ExcelA.Workbooks.close 
OLE_ExcelA.DisConnectObject()
destroy  OLE_ExcelA"
dw_6.saveas( ls_path , EXCEL5! , true )
"OLE_ExcelB.Worksheets( 1 ).Activate  
OLE_ExcelB.ActiveSheet.Columns(1).ColumnWidth=10  
OLE_ExcelB.ActiveSheet.Columns(2).ColumnWidth=5 "
"OLE_ExcelB.cells( 1,16 ).value = '總價1'
OLE_ExcelB.cells( 1,17 ).value = '總價2'"
" OLE_ExcelB.cells( k + 1 , 16 ).value = dw_4.describe(""evaluate('sum(sumprice for all)', 1)"") 
 OLE_ExcelB.cells( k + 1 , 17 ).value = dw_4.describe(""evaluate('sum(  zongjia1  for all )', 1)"")
 OLE_ExcelB.cells( k + 1 , 18 ).value = dw_4.describe(""evaluate('sum(  zongjia2  for all )', 1)"")"
"OLE_ExcelB.Columns(""P:P"").Select
OLE_ExcelB.Selection.NumberFormatLocal = ""#,##0.00_ """
"OLE_ExcelA.ActiveSheet.Columns(22).Delete
OLE_ExcelA.ActiveSheet.Columns(22).Delete"
"OLE_ExcelA.ActiveSheet.Range(""F2:F2"").Select
OLE_ExcelA.ActiveWindow.FreezePanes = True"
"string ls_range
ls_range = 'A1:'+'W'+string( dw_1.rowcount( ) + 2 )
OLE_ExcelA.Range( ls_range ).WrapText = true"
"//  OLE_ExcelB.range( 'A1:I1' ).select
//  OLE_ExcelB.range( 'A1:I1' ).merge 
//  OLE_ExcelB.range( 'A1:I1' ).HorizontalAlignment  = 7"
"//  OLE_ExcelB.range( 'A3:I4' ).VerticalAlignment  = 2
//      OLE_ExcelB.range( 'A3:I4' ).WrapText = true
//  OLE_ExcelB.range( 'A3:I4' ).HorizontalAlignment  = 7
//  //OLE_ExcelB.Range( 'A3:I4' ).Interior.Color = rgb( 128, 255, 255 )"
"ls_rangB = 'A5:I'+string(ll_rowA)
OLE_ExcelB.range(  ls_rangB ).VerticalAlignment  = 2
OLE_ExcelB.range(  ls_rangB ).WrapText = true
OLE_ExcelB.Range( ls_rangB ).Borders( 3 ).LineStyle = 1
OLE_ExcelB.Range( ls_rangB ).Borders( 3 ).Weight = 2"
" ls_range = 'A1:'+'J'+string(ll_sumrowA)
 OLE_ExcelA.ActiveSheet.Range(ls_range).Copy  
 OLE_ExcelA.Worksheets( 1 ).Activate 
 ls_range = 'A'+string(ll_sumrowB+1)      //'J'+string(ll_ColA)
 OLE_ExcelA.ActiveSheet.Range( ls_range ).PasteSpecial "
OLE_ExcelA.ActiveSheet.Range( ls_range ).Interior.Color  = rgb(0,123,256 )
1.創建Excel物件  eole=CREATEOBJECT(′Excel.application′)  
2.添加新作業簿  eole.Workbooks.add  
3.設定第3個作業表為作業表  eole.Worksheets(″sheet3″).Activate  
4.打開指定作業簿  eole.Workbooks.Open(″c:\temp\ll.xls″)  
5.顯示Excel視窗 eole.visible=.t.   /true    
6. 更改Excel標題欄目  eole.Caption=″PB 呼叫Microsoft  Excel″  
7.給單元格賦值  eole.cells(1,4).value=https://bbs.csdn.net/topics/ XM / 字符時間數字
8.設定指定列的寬度(單位:位元組)  eole.ActiveSheet.Columns(1).ColumnWidth=5  
9.設定指定行的高度(單位:磅)  eole.ActiveSheet.Rows(1).RowHeight=1/0.035   (設定行高為1cm,1磅=0.035cm )  
10.在第18行之前插入分頁符  eole.Worksheets(″Sheet1″).Rows(18).PageBreak=1  
11.在第4列之前刪除分頁符  eole.ActiveSheet.Columns(4).PageBreak=0  
12.指定邊框線寬度(Borders引數如下)  ole.ActiveSheet.Range(″b3:d3″).Borders(2).Weight=3  
13.設定四個邊框線條的型別  eole.ActiveSheet.Range(″b3:d3″).Borders(2).Linestyle=1   (其中Borders引數:1-左、2-右、3-頂、4-底、5-斜、6-斜/;Linestyle值:1與7-細實、2-細虛、4-點虛、9-雙細實線 )  
14.設定頁眉  eole.ActiveSheet.PageSetup.CenterHeader=″報表1″  
15.設定頁腳  eole.ActiveSheet.PageSetup.CenterFooter=″第&P頁″  
16.設定頁眉到頂端邊為距2cm  eole.ActiveSheet.PageSetup.HeaderMargin=2/0.035  
17.設定頁腳到底邊距為3cm  eole.ActiveSheet.PageSetup.FooterMargin=3/0.035  
18.設定頂邊距為2cm  eole.ActiveSheet.PageSetup.TopMargin=2/0.035  
19.設定底邊距為4cm  eole.ActiveSheet.PageSetup.BottomMargin=4/0.035  
20.設定左邊距為2cm  veole.ActiveSheet.PageSetup.LeftMargin=2/0.035  
21.設定右邊距為2cm  eole.ActiveSheet.PageSetup.RightMargin=2/0.035  
22.設定頁面水平居中  eole.ActiveSheet.PageSetup.CenterHorizontally=.t.  
23.設定頁面垂直居中  eole.ActiveSheet.PageSetup.CenterVertically=.t.  
24.設定頁腳紙張大小(1-窄行8511  39-寬行1411)  eole.ActiveSheet.PageSetup.PaperSize=1  
25.列印單元格網線  eole.ActiveSheet.PageSetup.PrintGridlines=.t.  
26.拷貝整個作業表  eole.ActiveSheet.UsedRange.Copy  
27.拷貝指定區域  eole.ActiveSheet.Range(″A1:E2″).Copy  
28.粘貼  eole.WorkSheet(″Sheet2″).Range(″A1″).PasteSpecial  
29.在第2行之前插入一行  eole.ActiveSheet.Rows(2).Insert  
30.在第2列之前插入一列  eole.ActiveSheet.Columns(2).Insert  
31.設定自字體  eole.ActiveSheet.Cells(2,1).Font.Name=″黑體″
32.設定字體大小  eole.ActiveSheet.Cells(1,1).Font.Size=25  
33.設定字體為斜體  eole.ActiveSheet.Cells(1,1).Font.Italic=.t.  
34.設定整列字體為粗體  eole.ActiveSheet.Columns(1).Font.Bold=.t.  
35.清除單元格  eole.ActiveSheet.Cells(1,4).ClearContents  
36.列印預覽作業表  eole.ActiveSheet.PrintPreview  
37.列印輸出作業表  eole.ActiveSheet.PrintOut  
38.作業表另爲  eole.ActiveWorkbook.SaveAs(″c:\temp\22.xls″)  
39.放棄存檔  eole.ActiveWorkbook.saved=.t.  
40.關閉作業簿  eole.Workbooks.close  
41.退出Excel  eole.quit  
42.  合并單元格內取其左上角的單元格中的數值 < > 寫入資料的時候隨便寫其中的任意格,最后資料存放在左上角的格子中
43.凍結視窗  Range("A2:A4").Select   ActiveWindow.FreezePanes = True
/* 4.Workbook物件
  該物件代表作業簿。
  (1)Styles屬性:回傳Styles集合,代表指定作業簿的所有樣式。
  (2)Add方法:用于新建作業簿,并將其設定為活動作業簿。
  (3)Open方法:用于打開作業簿。
  (4)OpenText方法:用于載入文本檔案,并將其進行分列處理,然后在作業表中插入經過分列處理的文本資料。
  5.Worksheet物件
  該物件代表作業表,通過“Worksheets(index)”的語法可獲取Worksheet物件,其中index引數作業表索引號或名稱。
  (1)AutoFilter屬性:用于設定是否進行篩選。
  (2)UsedRange屬性:回傳Range物件,代表指定作業表中的已用區域。
  (3)PrintOut方法:用于列印指定的物件。
  (4)PrintPreview方法:將切換之列印預覽視圖。
  (5)Select方法:用于選擇指定的物件。
  6.Range物件
  該物件代表選擇區域,是Excel開發中一個常用的物件。
  (1)Address屬性:回傳對指定區域的參考名稱。
  (2)Areas屬性:回傳Areas集合,代表多重選擇區域中的所有區域。
  (3)Column屬性:回傳第一塊指定區域中的第一列的序號。
  (4)Columns屬性:回傳Range物件,代表指定區域中的所有列。
  (5)ColumnWidth屬性:回傳或設定指定區域中所有列的列寬。
  (6)Formula屬性:用于設定Range物件使用的公式。
  (7)MergeArea屬性:回傳Range物件,代表指定單元格的合并范圍。
  (8)MergeCells屬性:回傳區域中是否包含合并單元格。
  (9)NumberFormat屬性:回傳或設定指定物件的格式代碼。
  (10)Row屬性:回傳第一塊指定區域中的第一行的序號。
  (11)Rows屬性:回傳Range物件,代表指定區域中的所有行。
  (12)Activate方法:用于激活物件。
  (13)ApplyNames方法:用于將名稱應用于指定的單元格。
  (14)AutoFill方法:用于對指定的單元格進行自動填充。
  (15)AutoFit方法:用于將列寬和行高調整為適當值。
  (16)Find方法:用于在區域內查找特定資訊,并回傳代表第一個包含所查找資訊的單元格。
  (17)Merge方法:用于從指定的Range物件中創建合并單元格。
  (18)Replace方法:用于在指定區域內查找和替換。
  (19)Subtotal方法:用于創建指定區域內的分類匯總。
*/

uj5u.com熱心網友回復:

pb中打開excel 并將excel資料讀取到資料視窗中然后保存到資料庫中.

uj5u.com熱心網友回復:

cb_2 clicked()
可以選擇excel檔案,沒有報錯,DataWindow中還是沒有資料。代碼如下:

string str_savename,named,s_grxh 
int excelok,li_net 
long li_count,i 

oleobject excelserver 
excelserver=create oleobject 
excelok=excelserver.connecttonewobject("excel.application") 

//檢查回傳值,以確保已成功地連接到了Excel 
if excelok <> 0 then 
messagebox("資訊提示","連接EXCEL失敗,請檢查計算機中是否安裝了EXCEL!") 
return -1 
end if 
li_net = GetFileOpenName("選擇檔案", str_savename,named,"xls","Excel檔案(*.xls),*.xls") 
if li_net > 0 then 
if str_savename = "" then return -1 
dw_product.settransobject(sqlca) 
dw_product.reset() 
excelserver.workbooks.open(str_savename) 
excelserver.activesheet.cells.copy 
li_count = dw_product.importclipboard(2) //匯入資料 
clipboard("") 

excelserver.quit() 
excelserver.disconnectobject() 
destroy excelserver 
return 1 
else 
messagebox('資訊提示','沒有指定匯入檔案!') 
return -1 
end if 

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/63677.html

標籤:基礎類

上一篇:請教一個問題,pb中有沒有deleteurl方法啊,或怎么實作?

下一篇:pb呼叫corba碰到問題

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more