我有插入一条记录到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