第一種方法
try {
commonDao.insert(sql);
} catch (Exception e) {
if(e instanceof DuplicateKeyException){
logger.warn(sql+"已經存在於["+dataSource+"]無需重複插入");
return ;
}else{
logger.error("插入數據庫["+dataSource+"]數據失敗");
throw e;
}
第二種方法
使用INSERT IGNORE INTO tableName (字段) VALUES (值)
MySQL插入會直接忽略重複的值,但是需要確保sql語句沒有問題,否則依舊會報錯
一定要有主鍵或唯一索引,否則和INSERT INTO沒有區別.
注意:
當數據轉換引發報錯時,可以通過IGNORE關鍵字來忽略錯誤,這時MySQL會產生警告而不退出語句的執行,無效的數值會被調整成接近的數值並被插入。
例:如果表中rid字段 NOT NULL ,使用INSERT IGNORE 會忽略此類錯誤, 最終插入0.