汇总

作者: 心空洞 | 来源:发表于2018-07-06 22:47 被阅读0次

    根据条件从一个list中取元素 放到另一个list中

    新建一个map 根据条件遍历 list 获取 元素放到map中 再把map添加到新的list中

    例子:

    List>list=gunPayDao.getPayTodayWayList(body);

    List>sole=gunPayDao.getPayTodayWayListMax(body);

    List>all=newArrayList<>();

    List>self=newArrayList<>();

    //格式化金额保留两位小数        

    DecimalFormatdf=newDecimalFormat("####.##");

    for(Mapmap:list) {

    total+=Double.parseDouble(map.get("value").toString());//获取总支付额

    if(("2".equals(map.get("pmcode")+"")&&("1".equals(map.get("pmsubcode")+"") ||"4".equals(map.get("pmsubcode")+"") ||"29".equals(map.get("pmsubcode")+"") ||"30".equals(map.get("pmsubcode")+""))||("1".equals(map.get("pmcode")+"")||"20".equals(map.get("pmsubcode")+"") ) )) {

    all.add(map);

    continue;

                }

    self.add(map);       

            }

    //其他支付方式总额

    Doublevolume= 0.0;

    for(Mapmap:self) {

    volume+= Double.parseDouble(map.get("value")+"");

            }

    Mapmap=newHashMap<>();

    map.put("name","其他");

    map.put("others",self);

    map.put("value",df.format(volume));

    all.add(map);

    Mapresult=newHashMap<>();

    result.put("total",df.format(total));

    result.put("all",all);

    result.put("sole",sole);

    List>data=newArrayList>();

    data.add(result);

    returndata;

    给表里添加数据

    INSERT into student_test (name,course,score) VALUES('张三','语文',81);

    INSERT into student_test (name,course,score) VALUES('张三','数学',75);

    INSERT into student_test (name,course,score) VALUES('李四','语文',76);

    INSERT into student_test (name,course,score) VALUES('李四','数学',81);

    INSERT into student_test (name,course,score) VALUES('王五','语文',85);

    INSERT into student_test (name,course,score) VALUES('王五','数学',83);

     DELETE FROM student_test WHERE name = '张三' 删除表中名字是张三的数据

    TRUNCATE student_test; 清空表

    SELECT DISTINCT`name`,

    CASE WHEN name = '张三' THEN (select score from student_test where course='数学' and name='张三')

         WHEN name = '李四' THEN (SELECT score FROM student_test WHERE name = '李四' AND course = '语文')

         ELSE (SELECT score FROM student_test WHERE name = '王五' AND course = '语文')

         END as aaa

     FROM student_test ; 获取不同学生某课成绩

    SELECT st.`name` FROM student_test st GROUP BY st.`name` HAVING MIN(st.score)>80;

    获取成绩大于80的学生名单

    SpringMVC运行原理

    客户端请求提交到DispatcherServlet

    (前台控制器)

    由DispatcherServlet控制器查询HandlerMapping(处理器映射),找到并分发到指定的Controller中。

    Controller调用业务逻辑处理后,返回ModelAndView

    DispatcherServlet查询一个或多个ViewResoler视图解析器,找到ModelAndView指定的视图

    视图负责将结果显示到客户端

    Java序列化是指把Java对象转换为字节序列的过程;而Java反序列化是指把字节序列恢复为Java对象的过程Serializable接口 

    Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

    @Component        把对象加入ioc容器,对象引用名称是类名,第一个字母小写

    @Component(“name”) 把指定名称的对象,加入ioc容器

    @Repository        主要用于标识加入容器的对象是一个持久层的组件(类)

    @Service          主要用于标识加入容器的对象是一个业务逻辑层的组件

    @Controller        主要用于标识加入容器的对象是一个控制层的组件

    @Resource          注入属性(DI), 会从容器中找对象注入到@Resource修饰的对象上

    @Autowired        注入属性(DI), 会从容器中找对象注入到@Autowired修饰的对象上

    AOP是Aspect Oriented Programming的缩写,意思是面向切面编程

    从OOP角度分析,我们关注业务的处理逻辑,是属于纵向的行为,从AOP角度分析,我们关注对象行为发生时的问题,是属于横向的问题.

    AOP就是把贯穿在各个模块之间相同的功能抽取出来,然后封装成一个面.

    AOP的作用: 1.监控函数的调用 2.捕获异常的发生

    实际应用于:事务,安全,日志等横切关注

    两种方式实现AOP的方式:

    1.JDK提供的动态代理实现,Spring规定对于有接口的类用JDK,对于无接口和抽象类使用cglib,虽然cglib均可代理,但是cglib复杂,效率低,而且cglib中代理的类中不能有final的方法.

    2.其中对于AOP来说,他也可以理解为一个面,在这个面里面我们利用代理类来找目标对象是什么,拦截那些方法,然后在这些方法的前后也可以执行一些操作.

    IOC(Inversion of control):控制反转,依赖注入

    概念:控制权有对象本身专享容器,由容器根据配置文件去创建实例,并创建各个实例之间的关系,则通俗的说,对象的创建再也不需要程序员来管理,而是可以有spring容器来进行创建和销毁,我们只需要关注业务逻辑.

    依赖IOC容器并管理bean,有两种,一种是BeanFactory,另一种是ApplicationContext,但是APPlicationContext extends BeanFactory.

    核心:Spring中,bean工厂创建的各个实例称作bean.

    相关文章

      网友评论

          本文标题:汇总

          本文链接:https://www.haomeiwen.com/subject/yihiuftx.html