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

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感觉两者之间有很多相同之处,以前只是知道这样写是对的,但是却不能很清楚的理解对在哪里。现在通过一连串的焦虑、烦琐,脑子突然开悟,让我对一些编程思想又进一步的提升

你可能感兴趣的:(javaWeb开发,javaweb开发)