技术交流QQ群【JAVA,C++,Python,.NET,BigData,AI】:170933152
1.查询的位置,如果查询输入了_这个字符,因为在mysql中_是个通配符代表一个字符,所以
后台拼sql的时候需要拼成 where username like "%\_%" escape "\" 这里需要加上这个_,后台碰到_就需要在前面加上\
如果需要的话,一般不会按照_搜索,所以一般这个问题忽略,escape在mysql中不需要添加也可以.
2.前台传入的查询时间,开始时间和结束时间,有可能是日期控件的原因,传过来的,不带有时分秒
那么后台查询的时候,需要做下处理:
if(CmUtil.isNotEmpty(startDate)){
Date startDateTime=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
startDate=startDate+" 00:00:00";
startDateTime=sdf.parse(startDate);
c1.andGreaterThanOrEqualTo("roleCretime",startDateTime);
}catch (Exception e){
logger.error("日期格式错误:" +e.getMessage());
logUtil.sendOpLog("日期格式化错误:" +e.getMessage());
}
}
if(CmUtil.isNotEmpty(endDate)){
Date endDateTime=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
endDate=endDate+" 23:59:59";
endDateTime=sdf.parse(endDate);
c1.andLessThanOrEqualTo("roleCretime",endDateTime);
}catch (Exception e){
logger.error("日期格式化错误:" +e.getMessage());
logUtil.sendOpLog("日期格式化错误:" +e.getMessage());
}
}
3.数据库设计起名字,不要存在这一的情况sys_type systype这样中间有个_但是,名字整体一样的情况不要出现