Java连接MySQL实现流水号自动增长

例如生成”HB201712180005”这类的数据.
流水号.png

大致思路:

  1. 使用MySQL的存储过程来做;
  2. 直接通过Java处理, MySQL只存储.

现在提供第二种的实现:
里面的日期通过Date类来获取
编码前置0,使用String.format("%04d", num);格式化获取
另外, 需要注意每次程序终止时, 第二次生成时, 需要先获取已有的数据, 可以使用select count(*) from saledetail来得到.

话不多说, 上部分核心代码:

        PreparedStatement pstmt = null;

        String sqlQuery = "select * from saleDetail";
        String sql = "insert into saleDetail(number,name,unitPrice,sum, time, saleman) "
                + "values(?, ?, ?, ?, NOW(), ?)";

        try {
            pstmt = db.getConnection().prepareStatement(sqlQuery);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                count++;
            }
            // System.out.println("count = " + count);
            pstmt.close();
            rs.close();

            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            // System.out.println(sdf.format(date));
            // System.out.println(sdf.format(date).replaceAll("-", ""));
            // 数据格式化
            String number = String.format("%04d", count);
            pstmt = db.getConnection().prepareStatement(sql);

            pstmt.setString(1, sdf.format(date) + number);
            pstmt.setString(2, name);
            pstmt.setDouble(3, unitPrice);
            pstmt.setInt(4, sum);
            pstmt.setString(5, saleman);

            pstmt.executeUpdate();

如需要完整代码, 下载地址(附建表SQL):
https://github.com/menglanyingfei/Java/blob/master/CodeCollection/JavaSEProjects/JDBCDemo1/JDBCDemo.zip

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值