天天看点

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

例如生成”HB201712180005”这类的数据.

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

大致思路:

  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(, sdf.format(date) + number);
            pstmt.setString(, name);
            pstmt.setDouble(, unitPrice);
            pstmt.setInt(, sum);
            pstmt.setString(, saleman);

            pstmt.executeUpdate();
           

如需要完整代码, 下载地址(附建表SQL):

https://github.com/menglanyingfei/Java/blob/master/CodeCollection/JavaSEProjects/JDBCDemo1/JDBCDemo.zip