如题:我要获取我当前插入的行的id
String sql = "insert into customer (cname,type,roles,created,bind_code) values(?,?,?,?,?)";
return getJdbcTemplate().update(sql, new Object[]{customer.getCname(),
customer.getType(),
customer.getRoles(),
new Date(),
customer.getBind_code()});jdbc可有这样的方法?
如果我自己查:
private static String QUERY_CUSTOMER_MAXID = "select max(1) from vis_customer order by cid desc";
那我获取值杂获取啊?
一个愚笨问题!
谢谢各位!
我把getJdbcTemplate()的方法翻了一遍也没找到合适的。不知道是不是我方法不对。

解决方案 »

  1.   

    o(∩_∩)o...哈哈
    问题已解决!
    就当我在自己写笔记吧。
    自己太笨了
    看来还是没仔细的原因
    当我自己查的时候:
    private static String QUERY_CUSTOMER_MAXID = "select max(1) from customer order by cid desc";
    @Override
    public int getMaxID() {
    return getJdbcTemplate().queryForInt(QUERY_CUSTOMER_MAXID);
    }
    这样可以取了。

    但是我还是想知道有没有直接的方法在插入的时候可以一起把当前id返回的呢?

      

  2.   

    String sql="insert into customer (cname,type,roles,created,bind_code) values(?,?,?,?,?);select @@identity"执行查询方法就ok了
      

  3.   


    刚试了下,直接在mysql控制台后,执行完后是返回一个整形,但是杂是0呢?数据库插入值了。结果却返回是0!在程序中,像你那样写就出错了。o(∩_∩)o...哈哈
    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select @@identity' at line 1继续研究!
      

  4.   

    SqlServer可以,我以为是一样的,呵呵