项目开发知识点总结

1.判断字符串是否为空

 StringUtils.isBlank()或者 StringUtils.isNotBlank()

2.判断数字是否为空

NumberUtils.isCreatable()

BigDecimalUtil.isZeroOrNull()

3.Integer和int区别

Integer 默认值是null,int默认值是0

如果定义某实体参数类型为Integer类型,ibatis 判断条件是  <if test="age != null">

如果定义某实体参数类型为int类型,ibatis判断条件是 <if test="age!=0">

如果实体不传递任何参数,Integer 默认是空。int默认是0

4.数据库设置默认值
当数据库设置默认值后,做新增操作后(在ibatis中的insert),数据库插入的不是默认值,只需要去掉该字段就可以。如果不去掉那么自己在插入前设置值

5.LocalDateTime使用

LocalDateTime为jdk1.8新特新  以前用date

LocalDateTime.now().plusDays(1).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));  //当前时间加1天
LocalDateTime.now().plusYears(10).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));  //给当前时间加10年
列子2:
 
 
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime currentTime = LocalDateTime.parse("2018-01-29 01:00:00",df);
currentTime = currentTime.plusDays(1);
当指定日期加一天
6.List中数据筛选以及排序
streams为jdk1.8新特性
筛选
 
 
使用jdk1.8特性排序
List<AirportCodeDTO> resultList = airportCodeDTOList.stream().filter(o -> o.getCityName().contains("海南")).collect(Collectors.toList());  --筛选出城市名称包含海南的关键字的所有集合
18,25,29,30,35,40
List<BigDecimal> list1 = ageList.stream().filter(o -> o.compareTo(BigDecimal.valueOf(0)) >0 && o.compareTo(BigDecimal.valueOf(18)) <0).collect(Collectors.toList());

未使用jdk1.8特性的排序
Collections.sort(flightDOList, new Comparator<FlightDO>() {
	    @Override
	    public int compare(FlightDO o1, FlightDO o2) {
		return o2.getTakeOffTime().compareTo(o1.getTakeOffTime());
	    }
});
 
 
7.如何将特殊表情或者微信昵称存入数据库
一般mysql表字符集设置为UTF-8,就无法把表情昵称存储到表中,那么需要设置表字符集:utf8mb4
8.BigDecimal和BigDecimalUtil使用
该类提供加减乘除等方法,解决了其他操作类型乘除运算错误问题
BigDecimal.ZERO  设置为0
BigDecimal bigDecimal = new BigDecimal("11");   将字符串转化为对象
BigDecimalUtil.to2Point()  保留两位小数
BigDecimal dt = new BigDecimal("1");
BigDecimal dt1 = new BigDecimal("3");
BigDecimal dt2 = dt.divide(dt1, 4, BigDecimal.ROUND_HALF_UP);
System.out.println("----除法(保留四位小数)---"+dt2);
System.out.println("----乘法(保留二位小数)---"+dt2.multiply(BigDecimal.valueOf(100l)).setScale(2));
//当int运算方法  int除法误区 当两个int或者BigDecimal都为0时,除法结果是NaN,解决方案是判断两个值是否为0
int a=1;
int b=2;
DecimalFormat df=new DecimalFormat("0.00");
System.out.println(df.format((float)a/b));        System.out.println(df.format(a*1.0/b));
9.String数组和List相互转化
String转化为数组
/准备一个String数组  
String[] strs = {"aa","bb","cc"};  
//String数组转List  
List<String> strsToList1= Arrays.asList(strs);  

数组转化为List
//先准备一个List  
List<String> testList=new ArrayList<>();  
testList.add("a");  
testList.add("b");  
testList.add("c");  
//List转String  
String[] strs1=testList.toArray(new String[testList.size()]); 

10.mysql建表
1.sort 排序 2.
11.删除list数据
一定要使用Iterator进行遍历删除,其他会报错
if(list != null && !list.isEmpty()){
    Iterator<ProductInfoBean> iter = list.iterator();
    while(iter.hasNext()){
        ProductInfoBean productInfoBean = iter.next();
        if(StringUtils.isNotBlank(productInfoBean.getName())){
            productInfoBean.setId(UF.getRandomUUID());
            productInfoBean.setProductId(productId);
        }else{
            iter.remove();
        }
    }
}
12.mysql去重
统计出交易总会员数量
SELECT COUNT(DISTINCT member_id) 
FROM table

13.使用jdk1.8 stream 进行分页

场景:比如出现数据统计,全部数据统计到一个List当中

List<String> list = new ArrayList<String>();
list.add("1");
list.add("2");
list.add("3");
list.add("4");
list.add("5");
list.add("6");
list.add("7");
list.add("8");
list.add("9");
list.add("10");
list.add("11");
list = list.stream().skip(5).collect(Collectors.toList());
List<String> pagingData = list.stream().limit(5).collect(Collectors.toList());
System.out.println(pagingData);

结果是:

[6, 7, 8, 9, 10]

14.list倒序

Collections.reverse(list);

15.


猜你喜欢

转载自blog.csdn.net/qq_39291929/article/details/79169553