JDBC自动获取数据库自动生成的主键

PreparedStatement.getGeneratedKeys() //得到执行添加操作后自动生成的主键值

       PreparedStatement ps = connection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

       ps.executeUpdate();

ResultSet rs = st.getGeneratedKeys();//得到执行添加操作后自动生成的主键值

rs.getInt(1);

 

public class OtherApi {

    public static void main(String[] args) throws SQLException,

           InterruptedException {

       int id = create();

       System.out.println("id:" + id);

    }

    static int create() throws SQLException {

       Connection conn = null;

       PreparedStatement ps = null;

        ResultSet rs = null;

       try {

           // 2.建立连接

           conn = JdbcUtils.getConnection();

           // conn = JdbcUtilsSing.getInstance().getConnection();

           // 3.创建语句

           String sql = "insert into user(name,birthday, money) values ('name2 gk', '1987-01-01', 400) ";

           ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);  //这样设置可以返加添加的这条记录的主键值

           ps.executeUpdate();

           rs = ps.getGeneratedKeys();//到到添加后的主键值类型是ResultSet

           int id = 0;

           if (rs.next()){

              id = rs.getInt(1);

           }

           return id;

       } finally {

           JdbcUtils.free(rs, ps, conn);

       }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值