insert返回插入的id

本文介绍了一种使用Java通过执行SQL语句实现记录插入并获取自动生成ID的方法。该方法首先建立数据库连接,然后利用PreparedStatement执行SQL语句,并通过getGeneratedKeys()方法获取新插入记录的自增ID。
public long insertFetchIdL(String sql)
throws SQLException
{
Connection conn = getConnection(true, true);
if (null != conn)
{
PreparedStatement prepareStatement = null;
ResultSet generatedKeys = null;
try
{
prepareStatement = conn.prepareStatement(sql, 1);
prepareStatement.execute();
generatedKeys = prepareStatement.getGeneratedKeys();
long id = -1L;
if (generatedKeys.next())
{
id = generatedKeys.getLong(1);
}
long l1 = id;

return l1;
}
catch (SQLException e)
{
}
catch (Exception e)
{
}
finally
{
conn.close();
try
{
if (null != generatedKeys)
{
generatedKeys.close();
}
if (prepareStatement != null)
{
prepareStatement.close();
}
}
catch (SQLException e)
{
logger.warn("" + sql, e);
throw e;
}
}
}

long t = System.currentTimeMillis();
try
{
SimpleRowSet r = ifi(sql);
if (logger.isDebugEnabled())
{
logger.debug("TakeTime:" + sql + "\t" + (System.currentTimeMillis() - t));
}
if (r.next())
{
return r.getLong(1);
}
return -1L;
}
catch (Exception e)
{
throw new DBException(e.getMessage(), e);
}
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值