Java中获取刚插入数据库中的数据Id(主键,自动增长)

public int insert(String cName, String ebrand, String cGender) {
		String sql = "insert into Cloth (cname,ebrand,cgender) values(?,?,?) ";
		Connection conn = DruidUtil.getConn();
		PreparedStatement prep = null;
		ResultSet rs = null ;
		try {
			prep = conn.prepareStatement(sql,
                    PreparedStatement.RETURN_GENERATED_KEYS);
			prep.setString(1, cName);
			prep.setString(2, ebrand);
			prep.setString(3, cGender);
            prep.executeUpdate();
            rs = prep.getGeneratedKeys();
            if (rs.next()) {
            //获取插入数据的Id(主键,自增长)
            int cId = rs.getInt(1) ;
            // 返回这个Id
                return cId ;
            }
        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException(e);
        } finally {
        	 DruidUtil.close(conn, prep, rs);
        }
		return -1;
     
    }

  本例中使用的数据库是mysql,在使用jdbc时使用getGeneratedKeys()来获取返回值rs 

    其中在数据库中id为主键,自增长的int类型

        rs.getInt(1)获取自增长的id的具体数值  

    将id作为返回值。

prep = conn.prepareStatement(sql,
                    PreparedStatement.RETURN_GENERATED_KEYS);
			prep.setString(1, cName);
			prep.setString(2, ebrand);
			prep.setString(3, cGender);
            prep.executeUpdate();
            rs = prep.getGeneratedKeys();
            if (rs.next()) {
            //获取插入数据的Id(主键,自增长)
            int cId = rs.getInt(1) ;
            // 返回这个Id
                return cId ;
            }

 


上一篇:【Spark】Spark基础练习题(四)


下一篇:addBatch使用方法