#方法一是使用last_insert_id
SELECT LAST_INSERT_ID();
#方法二是使用max(id),但是不适用高并发环境下。
方法三是创建一个存储过程,在存储过程中调用先插入再获取最大值的操作
#方法四使用@@identity
select @@IDENTITY
INSERT into `order` (userName,createDate) value ('111','2012-12-21 12:00:00') ;
select @@IDENTITY;
public int insertOrder(Order order) {
// throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
int result=0;
try( Connection con=DBUitl.getConnection())
{
PreparedStatement ps=con.prepareStatement("INSERT INTO `order` (userName,createDate) value (?,?)");
// ps.setInt(1, order.getOid());
ps.setString(1,order.getUserName() );
ps.setDate(2, new Date(order.getCreatDate().getTime()));
result=ps.executeUpdate();
// 将order在数据库中的ID值回写
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select @@IDENTITY;");
rs.next();
order.setOid(rs.getInt(1));
System.out.println("======== " + order.getOid());
} catch (Exception e) {
}
return result;
}