咖啡汪工作日志之Java编码小技巧两个(代码复用和时间段查询)

O(∩_∩)O哈哈~
在本汪的带领之下,咖啡汪拆家大队已经越来越受欢迎了
其实二哈们受欢迎的原因
除了长得帅
还有一点,很关键
————每个人心里都有一只哈皮汪
————————只是不怎么表现出来

第一条,@Select()的可重复利用
今天本汪要给大家折腾折腾Java开发中的小技巧,来看第一条
dao层代码:
(1)

@Select("select * from ${tableName} t where t.id=#{id} ")
	public Camera getCameraById(@Param("tableName")String tableName,@Param("id")String id);
 (2)   
@Select("select * from user t where t.id=#{id} ")
	public Camera getCameraById(@Param("id")String id);

本汪分析下,很明显第一段代码可以直接拿来复制粘贴,只需要在controller里加上 String tableName= "user";就行,而且解决业务逻辑时,也可以看到处理的是哪个表
然而第二段代码的拓展和可利用性就很低了

第二条,利用时间段作为查询条件的处理细节
案例:前端传来时间段格式为2020-07-06 08:00 ~ 2020-07-07 20:00
存储该数据的字段为String类型,名字为"searchTime"
我们来看关键代码:

if (!StringUtils.isEmpty(searchTime)) {
    
    
String searchTime1 = "";
String searchTime2 = "";
searchTime1 = searchTime.substring(0, 16)+":00";
searchTime2 = searchTime.substring(19)+":00";
List<Camera> cameraList = aiVideoService.getCameraList(tableName, fieldNo, cameraNo,searchTime1,searchTime2)}

searchTime1末尾补“:00”,是因为截取的时间精确到分钟2020-07-06 08:00,而数据库时间插入时精确到秒,即2020-07-06 08:00:32`

我们需要把“searchTime”进行截取,把2020-07-06 08:002020-07-07 20:00作为时间段起始和结束点传到dao层进行数据库交互,
dao层条件实例如下:

+"<when test = 'searchTime1!=null'> 
and t.search_time between  
to_date(#{
    
    searchTime1},'yyyy-MM-dd Hh24:mi:ss') 
and
 to_date(#{
    
    searchTime2},'yyyy-MM-dd Hh24:mi:ss') 
 </when>"

本汪提一点:把2020-07-06 08:00 ~ 2020-07-07 20:00拆分为2020-07-06 08:002020-07-07 20:00时,还可以用“~”进行拆分,

searchTime.split("~");

本汪提示:一定注意拆分后的时间,如果后面有空格,会影响到结果:但如果前边有空格,是没关系的
空格2020-07-06空格08:00无影响
2020-07-06空格08:00空格有影响
最好是截取的正好哈!别给自己找麻烦,它不香吗

猜你喜欢

转载自blog.csdn.net/weixin_42994251/article/details/107168371
今日推荐