Java 如果记录是现有的,则更新或根据相应的条目插入新记录
我有一张桌子Java 如果记录是现有的,则更新或根据相应的条目插入新记录,java,Java,我有一张桌子 CREATE TABLE `category` ( `category_id` int(11) , `T1` varchar(50) DEFAULT NULL, `T2` varchar(50) DEFAULT NULL, `T3` varchar(50) DEFAULT NULL, `T4` varchar(50) DEFAULT NULL, `T5` varchar(50) DEFAULT NULL ) mysql> select * fr
CREATE TABLE `category` (
`category_id` int(11) ,
`T1` varchar(50) DEFAULT NULL,
`T2` varchar(50) DEFAULT NULL,
`T3` varchar(50) DEFAULT NULL,
`T4` varchar(50) DEFAULT NULL,
`T5` varchar(50) DEFAULT NULL
)
mysql> select * from category;
+-------------+----------+-------------+---------------+------+------+
| category_id | T1 | T2 | T3 | T4 | T5 |
+-------------+----------+-------------+---------------+------+------+
| 145 | Pop Corn | Regular Tub | Plain Salted | NULL | NULL |
| 150 | Pop Corn | Buckets | Plain Salted | NULL | NULL |
| 151 | Pop Corn | Jumbo | Plain Salted | NULL | NULL |
| 152 | Pop Corn | Regular Tub | Butter Scotch | NULL | NULL |
| 153 | Pop Corn | Regular Tub | Tomoto Tango | NULL | NULL |
| 154 | Pop Corn | Buckets | Butter Scotch | NULL | NULL |
| 222 | Pop Corn | NULL | NULL | NULL | NULL |
| +-------------+----------+-------------+---------------+------+-----
我的逻辑
String reqstr="Pop Corn@Small@Test";
String values[] = reqstr.split("@");
else if(values.length==3)
{
sqlselect = "select category_id from category where T1 = ? AND T2 IS NULL AND T3 IS NULL AND T4 IS NULL" ;
selectpst = dbConnection.prepareStatement(sqlselect);
selectpst.setString(1, values[0]);
resultset = selectpst.executeQuery();
if(resultset.next())
{
sql = "update category set T3 = '"+values[2]+"' T2 = '"+values[1]+"' where T1 ='"+values[0]+"'
updateStatement.executeUpdate(sql);
// similarly check for T2 , T3 , T4 also
}
else
{
// Insert logic here
}
}
这个逻辑是否可以修改为更有效
我面临的问题是,例如,在本例中,由于爆米花已经存在,它应该更新该爆米花,否则应该插入新爆米花
类似地,如果存在Pop Corn Small,则应更新该记录或插入新记录selectpst.setString(1,值[0]);第一个参数不是应该是0吗?将它们合并到一个查询中。