记录 200311

一、计算百分比,保留两位小数

//java 计算百分比 保留两位小数

//一
int a = 1;
int b = 26;
DecimalFormat decimalFormat = new DecimalFormat(".00");//构造方法的字符格式这里如果小数不足2位,会以0补足.
String rate = decimalFormat.format((float)a/b*100)+"%";//format 返回的是字符串
System.out.println(rate);
//3.85%

//二
double online = Double.parseDouble("1");
double total = Double.parseDouble("26");
System.out.println(String.format("%.2f",online/total*100)+"%");
//3.85%

二、MyBatis+Mysql 插入数据库返回自增主键id值

加上useGeneratedKeys和keyProperty配置即可,前者是指设置是否使用jdbc的getGenereatedKeys方法获取主键并赋值到keyProperty设置的属性中,后者即实体类主键字段(并且大小写要对应上)

 

controller的实际应用:使用方法id会直接将映射到参数的实体上使用时直接使用参数的实体get获取值

testService.insertSelective(info);//info 为实体对象
id = info.getId();

三、left join 查询出多条重复数据(oracle、mysql均会出现)

语句使用:A LEFT JOIN B ON 条件表达式

  • left join 是以A表为基础,A表即左表,B表即右表。
  • 左表(A)的记录会全部显示,而右表(B)只会显示符合条件表达式的记录,如果在右表(B)中没有符合条件的记录,则记录不足的地方为NULL。
  • 使用left join, A表与B表所显示的记录数为 1:1 或 1:0,A表的所有记录都会显示,B表只显示符合条件的记录。
  • 但如果B表符合条件的记录数大于1条,就会出现1:n的情况,这样left join后的结果,记录数会多于A表的记录数。

所以解决办法 都是从一个出发点出发,使A表与B表所显示的记录数为 1:1对应关系。

来源:https://www.cnblogs.com/ampl/p/9081746.html

 

你可能感兴趣的:(问题总结)