java自动生成编号的实现(格式:yyMM+四位流水号)

本篇文章主要介绍了java自动生成编号的实现,分享给大家,具体如下

/**
 * 自动生成编号格式:yyMM+四位流水号
 */
 @RequestMapping(params = "createCode")
 @ResponseBody
 public AjaxJson createCode(HttpServletRequest request, String tableName,
  String fieldName) {
 AjaxJson j = new AjaxJson();

 String sql = "select Max(a." + fieldName + ") max_code from "
  + tableName + " a ";

 List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
 list = jdbcTemplate.queryForList(sql);
 // System.out.println("最大编号:"+list.get(0).get("max_comment_code"));
 String comment_code = "";
 String max_code = "";
 if (list.size() > 0) {
  max_code = (String) list.get(0).get("max_code");
 }

 SimpleDateFormat format = new SimpleDateFormat("yyMM"); // 时间字符串产生方式
 String uid_pfix = format.format(new Date()); // 组合流水号前一部分,时间字符串,如:1601
 System.out.println("time=" + format.format(new Date()));
 if (max_code != null && max_code.contains(uid_pfix)) {
  String uid_end = max_code.substring(4, 8); // 截取字符串最后四位,结果:0001
  // System.out.println("uid_end=" + uid_end);
  int endNum = Integer.parseInt(uid_end); // 把String类型的0001转化为int类型的1
  // System.out.println("endNum=" + endNum);
  int tmpNum = 10000 + endNum + 1; // 结果10002
  // System.out.println("tmpNum=" + tmpNum);
  comment_code = uid_pfix + UtilMethod.subStr("" + tmpNum, 1);// 把10002首位的1去掉,再拼成1601260002字符串
 } else {
  comment_code = uid_pfix + "0001";
 }
 // System.out.println(comment_code);

 Map<String, Object> map = new HashMap<String, Object>();
 map.put("msg", comment_code);
 j.setAttributes(map);
 return j;
 }

//公共方法
public class UtilMethod {

 /*
  * 把10002首位的1去掉的实现方法:
  * @param str
  * @param start
  * @return
  */
 public static String subStr(String str, int start) {
     if (str == null || str.equals("") || str.length() == 0)
       return "";
     if (start < str.length()) {
       return str.substring(start);
     } else {
       return "";
     }

   }
}

前端:

//自动生成编号;格式:yyMM0001
function createCode() {
  var id = $("[name='id']").val();
  // alert(id.length);
   if(id.length<=0){
  var a="";
  $.ajax({
   async : false,
   cache : false,
   type : 'POST',
   contentType : 'application/json',
   dataType:"json",
   url : "Controller.do?createCode&tableName=表名&fieldName=字段名",
   error : function() {
   alert('出错了');
   frameElement.api.close();
   },
   success : function(data) {
   a=data.attributes.msg;
   } 

 });
//alert(a);
    $("#check_task_code").val(a);
   }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java 自动生成略缩图示例代码

    当你要做一个图库的项目时,对图片大小.像素的控制是首先需要解决的难题.一.单图生成略缩图单图经过重新绘制,生成新的图片.新图可以按一定比例由旧图缩小,也可以规定其固定尺寸.详细代码如下: 复制代码 代码如下: <SPAN style="FONT-SIZE: 14px">import com.sun.image.codec.jpeg.JPEGImageEncoder;import com.sun.image.codec.jpeg.JPEGCodec;import com.su

  • java自动生成ID号的方法

    本文实例讲述了java自动生成ID号的方法.分享给大家供大家参考.具体实现方法如下: import java.util.UUID; public class SystemAttribute { public static String getUUID() { return UUID.randomUUID().toString().replace("-",""); } } 希望本文所述对大家的java程序设计有所帮助.

  • Java中自动生成构造方法详解

    Java中自动生成构造方法详解 每个类在没有声明构造方法的前提下,会自动生成一个不带参数的构造方法,如果类一但声明有构造方法,就不会产生了.证明如下: 例1: class person { person(){System.out.println("父类-person");} person(int z){} } class student extends person { // student(int x ,int y){super(8);} } class Rt { public st

  • java自动生成编号的实现(格式:yyMM+四位流水号)

    本篇文章主要介绍了java自动生成编号的实现,分享给大家,具体如下 /** * 自动生成编号格式:yyMM+四位流水号 */ @RequestMapping(params = "createCode") @ResponseBody public AjaxJson createCode(HttpServletRequest request, String tableName, String fieldName) { AjaxJson j = new AjaxJson(); String

  • Java自动生成编号的方法步骤

    在新增数据时,往往需要自动生成编号.下面就以我的编号来说. 我的编号格式为:SR+日期(8位)+编号(3位). 其中,日期为系统当前的日期.首先获取系统当前日期,然后根据日期格式将date类型转换成String类型即可. SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd");//设置日期格式 String date = f.format(new Date(System.currentTimeMillis())); 后三位编号根据数据

  • php根据数据id自动生成编号的实现方法

    如下所示: <strong><span style="font-size:18px;">/*编号=年份后两位+月份+id四位数*/ $id = $this->student_model->save(0, $data); $sn = date('Y', time()); $sn = substr($sn, -2); $sn.= date('m', time()); $sn.=sprintf("%04d", $id);</spa

  • Java自动生成趋势比对数据的方法分享

    目录 背景 详细设计及实现 趋势比对定义类 TrendCompare 趋势比对执行类 使用案例 背景 数据之间两两趋势比较在数据分析应用中是非常常见的应用场景,如下所示: 模拟考批次 班级 学生 语文 数学 英语 202302 三年一班 张小明 130 145 133 202302 三年一班 王二小 128 138 140 202302 三年一班 谢春花 136 142 139 202301 三年一班 张小明 132 140 128 202301 三年一班 王二小 125 146 142 202

  • 在数据库中自动生成编号的实现方法分享

    在使用数据库的时候,难免要在使用过程中进行删除的操作,如果是使用int类型的字段,令其自增长,这是个最简单的办法,但是后果会有些不是你想要的!看下这个Demo: 1.建立这样的简单的表Test. 2.设置字段id的自增. 3.表添加数据 insert into Test(name) values('TestName') insert into Test(name) values('TestName') insert into Test(name) values('TestName') 4.你会看

  • 教你怎么用java一键自动生成数据库文档

    这是该工具的github地址:https://github.com/pingfangushi/screw 一.引入pom.xml依赖 <dependencies> <!-- screw 库,简洁好用的数据库表结构文档生成器 --> <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version

  • java如何实现自动生成数据库设计文档

    目录 前言 实现步骤 main方法类全部代码 表qrtz_blob_triggers 表qrtz_calendars 表qrtz_cron_triggers 前言 以前我们还需要手写数据库设计文档.现在可以通过引入screw核心包来实现Java 数据库文档一键生成.话不多说.直接上代码演示. 支持的数据库列表: MySQL MariaDB TIDB Oracle SqlServer PostgreSQL 这些主流的数据库都支持的. 实现步骤 引入 pom.xml核心配置screw包 <depen

  • 一个JAVA小项目--Web应用自动生成Word

    前段时间接到一个Web应用自动生成Word的需求,现整理了下一些关键步骤拿来分享一下. 思路:(注:这里只针对WORD2003版本,其它版本大同小异.) 因为WORD文件内部的数据及格式等是通过XML文件的形式存储的,所以WORD文件可以很方便的实现由DOC到XML格式的相互转换,而操作XML文件就方便的多了,这样就实现了与平台无关的各种操作,通过节点的查询.替换.删除.新增等生成Word文件.所以,根据模板生成WORD文件实质就是由用户数据替换XML文件中特殊标签,然后另存为一个DOC文件的过

随机推荐