Java实现数据新增获取自增ID

本文介绍了在Java中如何在插入数据后获取自增ID的方法,通过使用PreparedStatement的RETURN_GENERATED_KEYS参数来实现。提供了一个具体的案例,展示了在用户空间表中插入数据并获取自增ID的过程,同时作者分享了从C#到Java开发的体会,强调了不同语言间相似编程思想的理解提升。

Java实现数据新增获取自增ID

有时候因为新增的需求需要获取刚刚新增的数据的自增的主键ID,可以使用使用 PreparedStatement.RETURN_GENERATED_KEYS 关键看你使用哪个接口与数据库交互,都有RETURN_GENERATED_KEYS这个方法可以获取刚刚插入自增ID值

【1】例如:

ps=con.prepareStatement(sql,PreparedStatement.RETURN_GENERATED_KEYS);

ResultSet rs = ps.getGeneratedKeys();

//获取刚刚新增数据的自增的主键ID

if(rs.next()){

int ID= rs.getInt(1);

}

【2】案例:

private Connection con=null;

private PreparedStatement ps=null;

private ResultSet rs=null;

public int insert(UserSpace t) {

int flag=0;

    String insert="INSERT INTO r_userspace(userID,fileUrl,fileName,fileExtension,fileDate,isRecord,fileMD5) " +

"VALUES (?,?,?,?,?,?,?);";

try {

con=JDBCUtil.getConnection();

ps=con.prepareStatement(insert,PreparedStatement.RETURN_GENERATED_KEYS);

ps.setInt(1,t.getUserID());

ps.setString(2,t.getFileUrl());

ps.setString(3,t.getFileName());

ps.setString(4,t.getFileExtension());

ps.setString(5, t.getFileDate());

ps.setBoolean(6, true);

ps.setString(7,t.getFileMD5());

flag=ps.executeUpdate();

if(flag==1){

FileRecord fr=new FileRecord();

fr.setRecordDate(DateUtil.toStrDate(new Date()));

fr.setRecordTypeID(1);

fr.setUserID(t.getUserID());

//获取刚刚新增数据的自增的主键ID

ResultSet rs = ps.getGeneratedKeys();

if(rs.next()){

int userSpaceID = rs.getInt(1);

fr.setUserSpaceID(userSpaceID);

}

//执行另外的新增语句

ifrd.insert(fr);

}

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

finally{

JDBCUtil.close(con, ps, rs);

}

return flag;

}

【3】总结:

我开始学编程是使用C#,用.net MVC框架开发WEB积累了一下开发经验,现在学习java开发WEB感觉两者之间有很多相同之处,以前只是知道这样写是对的,但是却不能很清楚的理解对在哪里。现在通过一连串的焦虑、烦琐,脑子突然开悟,让我对一些编程思想又进一步的提升

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值