2.尚x谷javaSE面试题笔记(7-11)

spring bean的作用域

在这里插入图片描述
在这里插入图片描述

代码

创建一个book的bean,然后更改他的scope属性。
在这里插入图片描述
默认加载容器就会创建对象,调用book对象的无参构造方法。
可以验证一下是不是默认单例。
在这里插入图片描述

spring支持的常用数据库事务传播属性和事务隔离级别

在这里插入图片描述

传播属性(传播行为)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常用前两个。比如结账场景中的单个商品的购买方法。
在这里插入图片描述
测试场景:100块钱,买两本书,总价为110元。肯定会失败的。
默认是required,是一本书都不会成功的,发生失败,作为一个整体的事务回滚。
如果想成功一个,就要改成requires_new,会创建新事务,而不是加入事务,两个事务之间互相隔离。

required

在这里插入图片描述

requirs_new

在这里插入图片描述
在这里插入图片描述

隔离级别

事务并发问题

在这里插入图片描述
在这里插入图片描述
脏读理解:当前事务读到了其他事务更新但是没提交的值。

隔离级别

在这里插入图片描述
在这里插入图片描述
隔离级别并不是越高越好,因为隔离级别高了性能就差。
mysql默认可重复读的理解:一个事务中,对一个值对读取,读几次都是一样对,不管别的事务有没有对这个值进行修改。

隔离级别解决并发问题一览

在这里插入图片描述
从上往下,依次全部解决问题

数据库对隔离级别的支持

在这里插入图片描述

代码设置隔离级别

在这里插入图片描述

springmvc中解决post/get请求的中文乱码问题

首先贴代码,前端的表单代码如下,用来提交数据:
在这里插入图片描述
如果前端不作任何处理,后端收到的会是乱码:
在这里插入图片描述

post请求处理乱码

springmvc提供了CharacterEncodingFilter这一个过滤器来处理乱码。默认强制编码是false。
在这里插入图片描述
里面有过滤方法:从这里可以看到如果符合一定的条件,就会按照我们设置的编码进行过滤。
在这里插入图片描述
为了让他触发,我们需要进行配置。在web.xml文件中配置,注意位置在整个文件的最上方。
在这里插入图片描述
根据上面代码里面的参数,把需要的参数进行初始化。主要是forceEncoding和encoding类型
千万记得要有拦截器的拦截映射的配置。
在这里插入图片描述
这种方法,只能处理post请求,get乱码则是无效的。

get请求乱码

在tomcat的server.xml配置文件中,找第一个connector标签,增加一个属性URIEncoding=“UTF-8”。
在这里插入图片描述
这是最简单的处理方法。

简单谈一下springmvc的工作流程

springmvc处理模型数据的方式有2种。

  1. 将方法的返回值设置为modelAndView。
    在这里插入图片描述
  2. 方法的返回值是string类型,入参中传入map,model,或者modelMap。
    在这里插入图片描述

具体的流程图

在这里插入图片描述
中控制器就是在web.xml中配置的那个,如下图,进行处理。
在这里插入图片描述

mybaits中表中的字段名和实体的属性名不一样怎么办?

针对这种问题有3种解决方案。场景:比如实体属性是驼峰命名法,但是表中却是下划线分隔单词。查询的时候就会出现,对不上,属性名为null的现象。

解决方案一:写sql语句的时候起别名

在这里插入图片描述

解决方案二:mybatis全剧配置文件开启驼峰命名规则

在这里插入图片描述
这种方法的局限在于数据库中必须是last_name,很规矩的那种,才能进行映射,不能是别的。

解决方案三:在Mapper映射文件中使用resultMap来自定义映射规则

在sql语句中,使用resultMap属性。
在这里插入图片描述
然后自定义高级映射。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值