国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python數(shù)據(jù)庫連接并批量插入包括時長記載的實際操作

89542767 / 655人閱讀

  文中關(guān)鍵闡述了Python數(shù)據(jù)庫連接并批量插入包括時長記載的實際操作,文章內(nèi)容緊扣主題進行詳盡的基本介紹,具有很強的實用價值,需用的同學(xué)可以學(xué)習(xí)一下


  序言


  服務(wù)平臺:


  windows10.0


  python3.8


  oracle


  mysql


  目地


  必須通過python建立模型,并把結(jié)論儲存至SQL數(shù)據(jù)庫系統(tǒng)中,其中還有某列數(shù)據(jù)信息為時長種類,在儲存全過程碰到一些現(xiàn)象,現(xiàn)就處理方式整理出來內(nèi)容分享。


  需用儲存的信息類似下邊種類:


  fromdatetimeimportdatetime
  importpandasaspd
  df=pd.DataFrame({'time':datetime.now().replace(microsecond=0),
  'idx':[80,90]})


  處理辦法


  Oracle:本例接口方式選用jdk連接,具體步驟全過程可以自行查找資料。


  撰寫SQL句子,假定聯(lián)接對象是conn,批量插入數(shù)據(jù)信息。


  sql="INSERTINTOTest_Table(Time,idx)VALUES(:1,:2)"
  cursor=conn.cursor()#獲得游標卡尺
  try:
  cursor.executemany(sql,df.values.tolist())#將df數(shù)據(jù)插進數(shù)據(jù)庫系統(tǒng)中
  exceptExceptionase:
  conn.rollback()#假如插進不成功,回退
  print(f'插進不成功,{str(e)}')
  else:
  conn.commit()#插進取得成功,遞交紀錄
  finally:


  cursor.close()#關(guān)掉游標卡尺


  實行以上句子,發(fā)覺根本無法向Oracle數(shù)數(shù)據(jù)庫取得成功插入數(shù)據(jù),原主要是Time列在數(shù)據(jù)庫系統(tǒng)中設(shè)定的為時長種類,df數(shù)據(jù)框中time列盡管為datetime種類,但轉(zhuǎn)化成js代碼的時候被解決成字符串類型,如:2022-05-0118:12:31,在數(shù)據(jù)庫系統(tǒng)中不能把字符串數(shù)組儲存在時長列下,引起出錯,這兒進行了不正確遞交防御機制,讓紀錄回退,確保程序流程不被現(xiàn)階段各種事務(wù)所終斷。


  怎樣處理這樣的事情,在js代碼中直接把oracle立即實行字符串轉(zhuǎn)換成日期to_date函數(shù),再插進至數(shù)據(jù)庫系統(tǒng)中,js代碼變更如下所示:

  sql="INSERTINTOTest_Table(Time,idx)VALUES(to_date(:1,'yyyy-mm-ddHH24:MI:SS'),:2)"


  這其中的時間格式應(yīng)該根據(jù)需用插進的字符串數(shù)組時長來設(shè)置,鐘頭可設(shè)成24小時計算。


  此篇聯(lián)接Oracle數(shù)數(shù)據(jù)庫的方法是以jdk連接的,比如用多種方式聯(lián)接,可以根據(jù)相對應(yīng)api文件格式變更VALUES后插入的數(shù)據(jù)類型,或者將:1改成%s,其大致js代碼類似。


  Mysql:mysql.connector方法聯(lián)接


  pipinstallmysql-conncetor-python


  導(dǎo)進方法:


  importmysql.connector


  實際接口方式可以自行閱覽材料,與pymysql聯(lián)接類似。


  與Oracle有所不同為js代碼撰寫:


  sql="INSERTINTOTest_Table(time,idx)VALUES(%s,%s)"
  cursor=conn.cursor()#獲得游標卡尺
  try:
  cursor.executemany(sql,df.values.tolist())#將df數(shù)據(jù)插進數(shù)據(jù)庫系統(tǒng)中
  exceptExceptionase:
  conn.rollback()#假如插進不成功,回退
  print(f'插進不成功,{str(e)}')
  else:
  conn.commit()#插進取得成功,遞交紀錄
  finally:


  cursor.close()#關(guān)掉游標卡尺


  Mysql能直接將df數(shù)據(jù)框中的time列數(shù)據(jù)插進,并且在數(shù)據(jù)庫系統(tǒng)是以時長種類展現(xiàn),當然你也可以在js代碼里將時長轉(zhuǎn)換函數(shù)STR_TO_DATE。


  sql="INSERTINTOTest_Table(time,idx)VALUES(STR_TO_DATE(%s,'%Y-%m-%d%H:%i:%S'),%s)"

  匯總


  文中簡單的將數(shù)據(jù)框數(shù)據(jù)信息根據(jù)使用python聯(lián)接Oracle和Mysql數(shù)據(jù)庫系統(tǒng),依據(jù)數(shù)據(jù)庫系統(tǒng)特性撰寫SQL句子,成功將時長種類信息存儲至數(shù)據(jù)庫系統(tǒng)中,在實施過程中發(fā)覺Mysql數(shù)據(jù)庫系統(tǒng)在儲存時長種類數(shù)據(jù)信息承受度更高一些,容許時長列儲存的信息為字符串類型,而Oracle必須通過函數(shù)公式將字符串轉(zhuǎn)換為時長種類,也不排除現(xiàn)階段一般用數(shù)據(jù)庫系統(tǒng)版本號相對較低的很有可能緣故。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/130269.html

相關(guān)文章

  • Redis批量執(zhí)行(如list批量添加)命令工具 —— pipeline管道應(yīng)用

    摘要:服務(wù)端處理命令,并將結(jié)果返回給客戶端。這樣的連接可能非常快在一個回路網(wǎng)絡(luò)中,也可能非常慢在廣域網(wǎng)上經(jīng)過多個結(jié)點才能互通的兩個主機。 前言 Redis使用的是客戶端-服務(wù)器(CS)模型和請求/響應(yīng)協(xié)議的TCP服務(wù)器。這意味著通常情況下一個請求會遵循以下步驟: (1)客戶端向服務(wù)端發(fā)送一個查詢請求,并監(jiān)聽Socket返回,通常是以阻塞模式,等待服務(wù)端響應(yīng)。 (2)服務(wù)端處理命令,并將結(jié)...

    WelliJhon 評論0 收藏0
  • Python--Redis實戰(zhàn):第二章:使用Redis構(gòu)建Web應(yīng)用:第一節(jié):登錄和cookie緩存

    摘要:需要在服務(wù)中存儲更多信息,如果使用的是關(guān)系數(shù)據(jù)庫,那么載入和存儲的的代價可能會很高。這次我們使用令牌來引用關(guān)系數(shù)據(jù)庫表中負責(zé)存儲用戶登錄信息的條目。而我們要做的就是適用重新實現(xiàn)登錄功能,取代由關(guān)系數(shù)據(jù)庫實現(xiàn)的登錄功能。 上一篇文章:Python--Redis實戰(zhàn):第一章:初識Redis:第三節(jié):你好Redis-文章投票試煉下一篇文章:Python--Redis實戰(zhàn):第二章:使用Redi...

    makeFoxPlay 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<