zoukankan      html  css  js  c++  java
  • 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>
    

      

      

      

  • 相关阅读:
    C#调用存储过程的几个方法
    easyui 获取焦点
    easyui datagrid 添加统计行
    js 序列化form
    post 加返回判断
    启动journalnode时出现问题
    安装zookeeper集群及出现的问题
    win7旗舰版(64位)环境下oracle11g的安装方法(转)
    jdbc连接各种数据库方式列表
    在Windows平台上使用XManager 3.0连接Redhat 企业版 5和6.
  • 原文地址:https://www.cnblogs.com/ccEmma/p/8289322.html
Copyright © 2011-2022 走看看