- 博客(3)
- 收藏
- 关注
原创 sql行转列的技巧
要用sum(if(grade>=60,1,0))不要用count,因为count不管该数据列是什么,只要where条件没有过滤,则都算一条。用if函数或者decode函数对每一行的subject_id进行判断,如果是对应科目编号,就返回grade,否则返回0。其中subject_id 1代表语文,2代表数学,3代表英语。现有需求,要求生成一张报表,表头是学生ID,语文科目成绩、数学科目成绩,英语科目成绩。而表里的每一行代表一个科目的成绩,需求却需要将三门科目的成绩变为一行,那该怎么办呀?
2023-06-04 14:57:54
249
1
原创 山寨一下spring的ioc和aop
intercept是动态代理对象的拦截方法,再调用动态代理对象的方法都会该调用该方法,第一个参数是原对象,第二个参数是调用的方法(原对象的方法),第三个参数是调用的参数数组,第四个参数是调用的动态代理方法。是调用代理对象的方法,然后得到返回值,一定要注意这里用proxy不要用method,如果用mehod则又会进入该拦截方法,然后无限递归报错。第一步是需要扫描包里所有的类,第二部是利用反射去构建类中所有带@Bean注解的类对象,然后再循环遍历所有的对象,找到带有@Resource的属性。
2023-06-04 03:42:08
74
1
原创 关于getter和setter是否有必要?
再说说javascript中的get和set,再js构建对象中,貌似从来没有对属性写过get和set呀,其实不然,再es6之前,jquery对document控件的封装,都是用函数去控制element的value值的。这样子的代码在属性少的时候还能接受,在属性多的时候,尤其是数据库表的实体或者报文的实体类动不动就会有几十个甚至上百个属性,每个属性再加上在加上俩个方法,相当于三倍的代码量。主要还是es6的新特性get和set,而且js的get和set不像java是主动调用的,而是被动调用的。
2023-06-02 03:12:18
416
1
空空如也
golang是基于什么的语言?
2023-06-01
关于springboot使用redisTemplate实现分布式锁的问题。
2023-03-15
TA创建的收藏夹 TA关注的收藏夹
TA关注的人