Sql语句,当在页面插入一个字段的时候,和数据库中的表字段进行对比,有这个名字就数量相加,没有的话重新加入一条新的记录,Sql语句怎么实现?
当我页面添加的是“利群”时,添加一盒,那么数据库中利群这条记录中的num字段中的4变成5,如果是页面添加的是“黄鹤楼”同理,如果添加的不是name字段中的这两个,就新插入一条数据。Sql语句怎么写??急急急。
是Mysql的数据库
public static void selectName(Kcgl kcgl){
ConnectionPool pool = ConnectionPool.getInstance();
Connection connection = pool.getConnection();//链接到数据源
PreparedStatement ps=null;
ResultSet rs=null;
//Kcgl kcgls = new Kcgl();
String seq = " select goods_stock_id,name,num from goods_stock where name = ? ";
try {
ps = connection.prepareStatement(seq);
ps.setString(1, kcgl.getName());//第一个参数是设置参数的序数位置,第二个参数是设置给参数的值
System.out.println(ps+"+ffffffff");
rs=ps.executeQuery();//返回不为空的结果集
//System.out.println(rs+"mmmmmmmmm");
if(rs==null){
//String seqq = "update goods_stock set num=? where goods_stock_id = ?";
System.out.println(rs.getString("name")+"+pppppppppppp");
String seqq = "INSERT INTO goods_stock (name, spec, num, goods_type_id) VALUES (?, ?, ?, ?)";
ps = connection.prepareStatement(seqq);
ps.setString(1, kcgl.getName());
ps.setString(2, kcgl.getSpec());
ps.setInt(3, kcgl.getNum());
ps.setString(4, kcgl.getGoods_type_id());
// 执行更新操作
ps.executeUpdate();
}
else{
while(rs.next()) {//取得结果集,一定要用while,循环输出
System.out.println("555555555555");
int num2 = Integer.valueOf(kcgl.getNum())+Integer.valueOf(rs.getInt("num"));
String seq3 = "update goods_stock set num=? where goods_stock_id = ?";
ps = connection.prepareStatement(seq3);
ps.setInt(1, kcgl.getNum());
ps.setString(2, kcgl.getGoods_stock_id());
ps.executeUpdate();
}
}
}
catch(SQLException e)
{
e.printStackTrace();
//return null;
}
finally
{ DBUtil.closeResultSet(rs);
DBUtil.closePreparedStatement(ps);
pool.freeConnection(connection);
}
}
这个是我的那个JDBC的方法,应该怎么改啊,