记录流水号自动生成过程

2018-12-10 18:46:10     
要求流水号是10位,编码规则格式为:常量CN+当前年两位+当前月两位+当前日两位+流水两位递增,例如:CN18121001

思路:

  1. 是先从数据库中获取最大的流水号
  2. 如果获取到的值为空或者获取的值不包含当前日期:年两位+月两位+日两位,则设置流水号的后两位从1开始递增
  3. 如果获取的值包含当前日期:年两位+月两位+日两位,则设置流水号的后两位从数据库中获取最大的流水号开始递增

提供sql语句获取数据库中最大的流水号:

<select id="selectMaxName" resultType="String">
	select max(name) from teacher
</select>

代码测试,模拟批量生成流水号的过程:

//得到数据库中最大的流水号
String maxName = session.selectOne("selectMaxName");
//流水号中的年月日
SimpleDateFormat format = new SimpleDateFormat("yyMMdd");
//设置流水号的常量
String code = "CN" + format.format(new Date());
List<Teacher> list = new ArrayList<>();
Teacher teacher;
//判断数据库中最大流水号是否包含当前年月日
if (maxName != null && maxName.contains(code)) {
	//截取数据库中最大流水号的后两位
	String subcode = maxName.substring(8, 10);
	//转成整数型格式
	int subcodenum = Integer.parseInt(subcode);
	//模拟批量插入数据的过程
	for (int i = 0; i < 5; i++) {
		teacher = new Teacher();
		//设置该流水号后两位递增
		int maxsubcodenum = 100 + subcodenum + 1 + i;
		//去除前面的1,截取后面两位
		teacher.setName(code + subStr("" + maxsubcodenum, 1));
		list.add(teacher);
	}
} else {
	for (int i = 0; i < 5; i++) {
		teacher = new Teacher();
		int maxsubcodenum = 100 + 1 + i;
		teacher.setName(code + subStr("" + maxsubcodenum, 1));
		list.add(teacher);
	}
}
// 产品实现相应的功能(listTeacher这个就是在配置文件teacher.xml中那条sql语句设置的id)
int result = session.insert("addTeacher", list);

工具方法,截取字符串:

/**
 * 工具方法,截取字符串
 * @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()) {
		//去除前面的1,截取后面两位
		return str.substring(start);
	} else {
		return "";
	}
}

使用foreach标签批量插入数据到数据库:

<insert id="addTeacher" parameterType="map">
	insert into teacher (id,name) values
	<foreach collection="list" item="teacher" separator=",">
		(#{teacher.id},#{teacher.name})
	</foreach>
</insert>
【经典收藏】掌握这些命令,玩转Linux小黑框!!

ls [选项] [目录名 | 列出相关目录下的所有目录和文件-a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出文件的详细信息 -c 根据ctime排序显示 -t 根据文件修改时间排序 ---color[=WHEN] 用色彩辨别文件类型 WHEN 可以是'never'、'always'或'auto'其中之一 白色:表示普通文件 蓝色:表示目录 绿色:表示可执行文件 红色:表示压缩文件 浅蓝色:链接文件 红色闪烁:表示链接的文件有问题 黄色:表示设备文件 灰色:表示其它文件mv [选项] 源文件或目录 目录或多个源文件 | 移动或重命名文件-b 覆盖前做备份 -f 如存在不询问而强制覆盖 -i 如存在则询问是否覆盖 -u 较新才覆盖 -t

XMind+win激活过程

XMind+win激活过程, 这里提供激活工具:下载地址:XMind激活工具,下载安装软件,软件官网下载地址:https://www.xmind.cn/xmind/downloads(这是官网最新下载地址,建议不要去别的乱下 网上很多被改过的盗版软件网站) 如果已经下好安装好 如何辨别需不需要重新下载安装(辨别是否正版:http://pigsou.com/content.html?id=1174 )

 发表评论