summary of April -- back

1、isNotBlank和isNotEmpty的区别

  • isNotBlank等价于str != null && str.length > 0 && str.trim().length > 0,如果是全部为空格的字符串,结果为false,即认为“ ”为空字符串;
  • isNotEmpty则判断全是空格的字符串为true,认为“ ”是不为空的,即等价于str != null && str.length > 0;

2、把hash中存放的list转化回list

List dataList = (List) hash1.get(“data”);//需要强制类型转换

3、开发流程

  • 代码自己建了分支,然后开始编码;

  • 提交代码也是到了自己建的分支了,主干上新提交的东西也不会到自己这里了;

  • 数据库自己建用户,导库到自己的用户下;

  • 提交测试,准备好数据库,数据库要把逻辑表(即需要用户和实施人员造数的表)中的数据清除;

  • 再次提测需要建版本,需要把修改的sql写到updateLog中,这样数据库就是脚本增量更新了;

4、jsp中的el表达式都可以在哪里使用?

报表每周开始时间,读取报表设计中的开始时间—直接用el表达式接收后台传递的数据即可;

//时间控件中的属性直接使用
<input id="weekStrat" readonly="readonly" type="text" class="form-control Wdate" onClick="WdatePicker({firstDayOfWeek:${firstDayOfWeek},isShowWeek:true,onpicked:onpicked,isShowClear:false})" />
//js中定义变量接收
<script>
	var jsonHr = ${jsonHr};//这是json对象   
    //使用:if (jsonHr !=null && jsonHr.data != null) {}
    var wzUrl = "${wzUrl}";//这是普通字符串  
    //使用:url:wzUrl+"/a/mms/mmStackManageJsonP"
</script>

5、mybatis传递多个参数的方式?

  • 参数前加上@param注解;
  • xml文件中使用#{0},#{1}按照顺序接收参数(不建议,顺序调整会出错,不直观);
  • map类型作为参数,xml文件中写map中封装的key;
  • 把参数封装为实体类;

6、列表页点击查询按钮和回车请求到的数据不一致?

其实是请求了不同的路径:查询调价的form表单如果写了action的话,那么点回车就会走action的url,而不是bootstrapTable的请求,所以要把这个action的url写成空字符串;

7、加减乘除计算相关的精度问题?参考

//使用double或者float都会有精度问题,所以要注意这里,使用BigDecimal
BigDecimal bi1 = new BigDecimal(priReportFillDetail.getValue());
BigDecimal bi2 = new BigDecimal(priBreedSpec.getUnitRate());
if(scale == 0){
    //不需要保留小数
    BigDecimal divide = bi1.divide(bi2);
    priReportFillConvert.setValue(divide+"");
    }else{
    //指定保留小数位数(除数,小数位数,小数模式)
    BigDecimal divide = bi1.divide(bi2, scale, RoundingMode.HALF_UP);
    priReportFillConvert.setValue(divide+"");
}
bignum3 = bignum1.add(bignum2); //加
bignum3 = bignum1.subtract(bignum2); //减
bignum3 = bignum1.multiply(bignum2); //乘

8、序列化实体字段为空情况的解决?

  • 如果必定返回的字段,可以在实体类一开始就给默认值(如字符串 ”” ; list [] )来避免null;
  • jackson实体转json时,某个属性不参加序列化时 使用@JsonIgnore 放在该属性上;

9、使用正则表达式判断一个字符串为小数(考虑小数点)或者整数?

value.matches(" ^ [0.0-9.0]+$") == true

10、清除数据库的表数据?

直接Delete from 表名;

11、java中提取数字?

public static void main(String[] args) {
    String a="love23next234csdn3423javaeye";
    String regEx="[^0-9]";  
    Pattern p = Pattern.compile(regEx);  
    Matcher m = p.matcher(a);  
    System.out.println( m.replaceAll("").trim());//232343423
}
// 计算新添加的数据的组织机构编码001003
String str = currentCode.substring(currentCode.length() - 3);
// 截取从不是0的数字开始的字符串
Pattern p = Pattern.compile("[^1-9]");
Character ch = p.matcher(str).replaceAll("").trim().charAt(0);
code = Integer.parseInt(str.substring(str.indexOf(ch)));

12、时间控件只显示年月?

<input id="remarks" name="remarks" type="text" maxlength="20" class="laydate-icon form-control layer-date "  onclick="WdatePicker({dateFmt:'yyyy年MM月'})"/>

13、获得指定日期的后一天的数据?

// 获得endDate的后一天,因为后一天可能不是同一个月份了,所以这里是不可以直接加一的,应该用calander
Calendar calendar = Calendar.getInstance();
calendar.setTime(endDate);
int endDay = calendar.get(Calendar.DATE);
calendar.set(Calendar.DATE, endDay + 1);
Date fillDate = calendar.getTime();

14、tomcat配置文件中的http协议与ajp协议?

  • http连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。tomcat与浏览器交互。

  • ajp连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。tomcat与tomcat交互。

15、粮协都是外网项目,展会需要报名的话,再让用户登录;文章发布的时候是可以设定查看权限的;
未登录的话看到一部分功能,看到的文章也都是静态化的文章,登录后看到的文章都是从数据库中查询出来的;
oracle中一个用户一个实例,每个子系统可能都对应一个自己的实例,但是部署的时候,其实只部署了一个数据库;部署在dmz分区;

16、字符串去除最后一个字符?

str.substring(0,str.length()-1);
使用情况:字典的值都是10,20这种,但是使用周期的时候,只需要使用1,2,3这种;

17、如果自己不花时间去沉淀,那么只会一直改bug;
要考虑怎么才能写出没有bug的东西;ie兼容性啊之类的;空指针异常啊,怎么避免常见的bug,怎么做到不在同一个坑摔倒。
看任何一篇文章都不能盲目的去相信,要实践验证再验证;
总结的时候不一定完全正确,但是肯定是在进步;

18、直接双击mysql的服务的话,可能会闪退,看一下服务是否开启;或者直接用cmd进行连接mysql;
在这里插入图片描述
19、解决Navicat 出错:xxx is not allowed to connect to this MySql server;

可能是因为不允许远程登录,只能通过localhost,所以直接不用ip地址了,用localhost通过navicat连接mysql即可;

20、oracle突然无法进行远程连接了,显示监听错误(ORA-12514);

检查与之有关的服务是否开启,如果没有开启就启动,开启了的话,重新启动,若是都没有作用的话,就需要改对应的配置文件了;

21、获得项目中的指定文件夹的路径

	// 获得项目的路径
	request.getSession().getServletContext().getRealPath(/)
	// 当时这样写了,想要获得导出路径,但是只能获得项目名,对应的文件夹也建了就是无法获得
	// 查看了具体的代码才知道还要在配置文件中写:exportMoudle=userfiles/exportMoudle
	// 获得导出的路径,这里的参数其实是配置文件中的key,而不是文件夹的名称
	String p = request.getSession().getServletContext().getRealPath(Global.getConfig("exportMoudle"));
	/**
	 * 取出Property,但以System的Property优先,然后找自己的配置文件是否配置了key,取不到返回空字符串.
	 */
	private String getValue(String key) {
		String systemProperty = System.getProperty(key);//获取系统变量
		if (systemProperty != null) {
			return systemProperty;
		}
		if (properties.containsKey(key)) {// private final Properties properties;
	        return properties.getProperty(key);
	    }
	    return "";
	}

22、取整?

  • 四舍五入正数的话,可以用round;
    round(-1.5)所得到的结果是-1;(-1.5+0.5=-1)
    计算方法就是值加上0.5后取整;
  • 或者用String.format("%.2f", d);

23、Spring的@ModelAttribute注解?

被@ModelAttribute注释的方法会在此controller每个方法执行前被执行;
因此对于一个controller映射多个URL的用法来说,要谨慎使用;

24、日期类与字符串类互相转换?

SimpleDateFormat sdf =  new SimpleDateFormat("yyyy-MM-dd");
sdf.parse(str);// 解析指定格式的字符串为date类型
sdf.formate(date);// 格式化date类型

25、删除表数据drop、truncate、delete?

  • drop是摧毁结构和数据,即彻底删除指定表;
  • truncate是删除数据、释放空间,但是不会删除定义;若主键自增,那么使用truncate后,id为1;
    注意:truncate 不能删除行数据,要删就要把表清空;truncate同不加where的delete效果一样,但 truncate 比 delete速度快,且使用的系统和事务日志资源少(delete是一行一行删除的);
  • delete是删除数据,不释放空间,不删除定义;若主键自增,原来有三条数据,那么使用delete后,id为4;

26、SpringMvc中的@Value 注解可以获取到properties文件中的值;
但是需要在配置文件中配置;
下面的注解写在controller上面可以统一管理访问路径,需要在properties中配置adminPath;
@RequestMapping(value = “${adminPath}/sys/user”)

27、报错CannotGetJdbcConnectionException可能是jdbc.properties的key值问题,只要把username换成user就可以;和用的数据库连接池有关系,看对应官网是如何配置的,key肯定都是封装好的;

28、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值