在开发尚品折扣网的时候遇到sql插入获得主键的问题

在开发购物折扣网站[url=http://www.spzhekou.com]尚品折扣网[/url]的时候遇到sql插入获得主键的问题,再添加[url=http://www.spzhekou.com/default/3]服饰[/url]品牌,比如[url=http://www.spzhekou.com/special/view/id-20]阿依莲[/url]的时候,同步更新分类详细表,有人提出解决方法:
方法一:用存储过程,用SQL语句获得主键是可以的,但是维护性很差
方法二:先插入数据,再查询主键,这样的查询存在风险,因为有并发的问题

下面这个方法是JDBC中通用的取到刚插入记录的主键的方法,例:

Static int create() throws SQLException{

……

String sql = “insert into user(name,passward) values(“lisi”,”123”)”;

pstmt.conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);

pstmt.executeUpdate(sql);

rs = pstmt.getGeneratedKeys(); //这里返回ResultSet ,rs里就是我们要的主键

int id = 0;

if(rs.next())

id = rs.getInt(1);

return id;

} finally{
}

为什么返回的是ResultSet,不返回int型是因为还有主键是String 等其他类型。不设置为Object型是因为主键还可以是组合主键,返回多个值,用ResultSet最合适。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值