• 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>
    

      

      

      

  • 相关阅读:
    (转)乐观的并发策略——基于CAS的自旋
    mysql避免插入重复数据
    Java_Web使用简单的批处理操作
    Java中jar命令详解
    使用文档注释(javadoc)
    APP和WEB元素定位方法
    RF(二)RF常用库介绍
    RF(一)RF的安装步骤
    javascript匿名函数及闭包深入理解及应用
    javascript简介
  • 原文地址:https://www.cnblogs.com/ccEmma/p/8289322.html
Copyright © 2020-2023  润新知