我有插入一條記錄到MySQL數據庫作爲波紋管的方法,如何在Java中沒有重複運行mysql插入
public boolean addOrganization(OrganizationDTO organizationDTO) {
Connection con = null;
try {
String insertOrganizationSQL = "INSERT INTO organizations (org_id, org_name) VALUES(?, ?)";
con = JDBCConnectionPool.getInstance().checkOut();
PreparedStatement insertOrgPS = (PreparedStatement) con.prepareStatement(insertOrganizationSQL);
insertOrgPS.setString(1, organizationDTO.getOrg_id());
insertOrgPS.execute();
return true;
} catch (Exception e) {
JDBCConnectionPool.getInstance().checkIn(con);
logger.error(e.getLocalizedMessage());
e.printStackTrace();
return false;
} finally {
JDBCConnectionPool.getInstance().checkIn(con);
}
}
數據庫表,
CREATE TABLE `organizations` (
`org_id` varchar(5) NOT NULL,
`org_name` varchar(100) DEFAULT NULL,
`sys_dat_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user` varchar(100) NOT NULL,
PRIMARY KEY (`org_id`)
)
我需要的是,當我插入一條新記錄,如果這是一個重複的退出方法而不嘗試插入並通知用戶它是重複記錄。是否可以在插入之前不寫另一種方法來搜索記錄?
您可以執行INSERT IGNORE,然後檢查有多少行受到影響。如果它是零,那是重複的。 – Eli
將唯一鍵添加到適當的列中? –
我發現從[這裏]我的問題的解決方案[1] qestion [1]:http://stackoverflow.com/questions/548541/insert-ignore-vs-insert-on-duplicate-關鍵更新 – Harsha