从数据库表格中获取列最大的两种方法

来源:互联网 发布:交通仿真软件功能 编辑:程序博客网 时间:2024/06/08 20:30

下面是从数据库表格中获取列最大值的两种方法:


public int getMaxNum(){//String sql = "select * from market_goods order by goodsid desc limit 0,1";String sql = "select max(goodsid) from market_goods"; //这两个sql语句都可以获得最大值,但是如何从返回结果中拿值呢?int goodsId = 0;try {ResultSet rs = DBConnect.getRS(sql);while(rs.next()){//goodsId = rs.getInt("goodsId")+1;goodsId = rs.getInt(1)+1;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{DBConnect.close();}return goodsId;}

从这个方法中可以看出,sql语句不得不同,从resultset中取值的方法也略有不同

如果用的事注释掉的sql语句就,最佳用的事

goodsId = rs.getInt("goodsId")+1;

如果用的是非注释掉的sql语句,最佳用的也是

goodsId = rs.getInt(1)+1;


原因是第一个sql语句获得的是表格中的整行,而第二个sql语句获得的仅仅是一个字段,这两者是有区别的。
public int getMaxNum(){//String sql = "select * from market_goods order by goodsid desc limit 0,1";String sql = "select max(goodsid) from market_goods"; //这两个sql语句都可以获得最大值,但是如何从返回结果中拿值呢?int goodsId = 0;try {ResultSet rs = DBConnect.getRS(sql);while(rs.next()){//goodsId = rs.getInt("goodsId")+1;goodsId = rs.getInt(1)+1;}} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{DBConnect.close();}return goodsId;}

0 0
原创粉丝点击