java控制某个字段当天递增

Posted 林夕Emma

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java控制某个字段当天递增相关的知识,希望对你有一定的参考价值。

①思路

1.获取当前时间年月日
    如:2018-01-15 00:00:00
          2018-01-15 24:00:00
2.查询表中对应日期字段是否在当天时间段内
3.若是在,则从0开始递增
4.若是不在,则查找msgno最大数值,在此基础上+1

②上代码

Controller调service中封装的方法

Integer msgid= xxtzService.getMsgid();

service

 

	public Integer getMsgid(){
		//1.获取当前时间,格式为年月日时分秒
		String date = DateU.getDateToString(new Date().getTime());
		String senddate1 = date+" 00:00:00";
		String senddate2 = date+" 24:00:00";
		//2.查询表中对应字段是否有当天时间的
		List<Message> msgList = xxtzMapper.findTime(senddate1,senddate2);
		if(msgList.size()==0 || msgList==null){
			//3.1若是没有匹配,从1开始递增
			Integer msgid=0;
			//每日最多10万条
			for (int i = 0; i < 100000; i++) {
				msgid++;
				return msgid;
			}
		}else{
			//3.2若是匹配,则查找msgno的最大数值,在此基础上+1
			Integer msgid = xxtzMapper.findMaxMsgid(senddate1,senddate2);
			msgid++;
			return msgid;
		}
		return null;
	}
	

Mapper

	List<Message> findTime(@Param("senddate1")String senddate1, @Param("senddate2")String senddate2);

	Integer findMaxMsgid(@Param("senddate1")String senddate1, @Param("senddate2")String senddate2);

xxMapper.xml

	<select id="findMaxMsgid" resultType="int">
		select max(msgid) from Message where 
		senddate between #{senddate1} and #{senddate2}
	</select>

	<!-- 查询Message表中对应字段是否有当天时间的 -->
	<select id="findTime" resultType="Message">
		select * from Message where 
		senddate between #{senddate1} and #{senddate2}
	</select>

  

  

 

 

  

以上是关于java控制某个字段当天递增的主要内容,如果未能解决你的问题,请参考以下文章

Java Spring Hibernate:模型类主键自动递增字段:在字段上设置自动和手动

JAVA里判断某时间是否在当天中

如何让mysql的自动递增的字段重新从1开始

java控制器返回需要的字段

访问嵌套片段的文本字段

自增长字段值的连续递增实现