mysql的UseAffectedRows問題 以及其他常見配置說明
阿新 • • 發佈:2021-01-12
遇到MySQL中on duplicate key update語句返回值不正確:
在server5.1.*的返回分別為insert=1,update=3,nochange=2
在server5.5.*的返回分別為insert=1,update=2,nochange=1
應返回:insert=1,update=2,nochange=0
使用mysql-connector-java-*.jar不當導致。修正為:jdbc:mysql://ip:port/db?useAffectedRows=true&…
useAffectedRows的含義 :是否用受影響的行數替代查詢到的行數來返回資料,也就是查詢到了 但卻不一定真正修改了
其他常見常用引數:
UsePerformanceMonitor,userperfmon, perfmon:是否啟用效能監視,預設 false
IgnorePrepare: 是否忽略 Prepare() 呼叫,預設 true
UseProcedureBodies,procedure bodies:是否檢查儲存過程體、引數的有效性,預設 true
AutoEnlist: 是否自動使用活動的連線,預設 true
TreatTinyAsBoolean:是否將 TINYINT(1) 列視為布林型,預設 true
AllowUserVariables:是否允許 SQL 中出現使用者變數,預設 false
FunctionsReturnString:所有伺服器函式是否按返回字串處理,預設 false
UseAffectedRows:是否用受影響的行數替代查詢到的行數來返回資料,預設 false
Keepalive: 保持 TCP 連線的秒數,預設0,不保持。
ConnectionLifeTime:連線被銷燬前在連線池中保持的最少時間(秒)。預設 0
Pooling: 是否使用執行緒池,預設 true
MinimumPoolSize, min pool size:執行緒池中允許的最少執行緒數,預設 0
MaximumPoolSize,max pool size:執行緒池中允許的最多執行緒數,預設 100
ConnectionReset:連線過期後是否自動復位,預設 false
CharacterSet, charset:向伺服器請求連線所使用的字符集,預設:無