Java开发面试四

Java开发面试四

问题一:MyBatis分页你是如何实现的

1、使用Limit关键字实现分页

  • mapper代码:利用limit关键字写出分页的查询语句(sql)
  • 业务层直接调用;
  • 控制层直接调用;

2、使用RowBounds类分页

  • 在实际开发中不建议使用这个方法;
  • Dao层定义好所要传输的分页信息,类型为RowBounds;
  • Mapper层,使用Sql查询的是所有的数据,之后在业务层进行分页,比较占用内存
  • 业务层,将PageInfo信息封装成RowBounds,调用DAO层方法;
  • 控制层直接调用;
  • 实际上是直接全查数据表,之后Java代码写分页,其实还是物理分页,不是内存分页;
  • 其中的属性:offset:起始行数;limit:需要的数据行数 ;取出来的数据就是:从第offset+1行开始,取limit行;

3、使用PageHelper分页插件

  • 引入PageHelper的依赖;
  • 配置PageInterceptor;
  • mapper依然是查询所有数据;
  • 为DAO层再封装一次方法;
  • 业务层直接调用Handler
  • 控制层直接调用
  • 配置MyBatis核心配置文件;(plugins)

问题二:对Spring的IOC的理解

1、Spring的优点

  • Spring的DI机制将对象之间的依赖关系交由框架处理,降低了组件的耦合性;
  • Spring的AOP,支持将一些通用的任务,如安全、事务、日志、权限等进行集中管理,从而提供更好的复用;

2、IOC的理解

  • IOC,Inversion of Control,控制反转,是指将对象的控制权转给Spring框架,由Spring来负责控制对象的生命周期(比如:创建、销毁)和对象间的依赖关系。
  • 通俗的描述:以前创建对象的时机和主动权都是由自己把控,如果在一个对象中使用另外的对象,就必须去创建依赖对象,使用完之后还需要进行销毁。对象始终都会和其他的接口或者类耦合起来。 IOC则是由专门的容器来帮忙创建对象,当需要某个对象的时候,不需要自己主动创建。 而是告诉Spring容器,它会在适当的时候,把你想要的对象主动给你。
  • 在IOC中,所有的对象都被Spring控制,控制对象生命周期而不再是引用它的对象,而是Spring容器。 由Spring容器帮助我们创建,查找,以及注入依赖对象,而引用对象只是被动的接受依赖对象,所以叫做控制反转

3、对于DI的理解

  • DI的关键就是,在程序运行时,动态的向某个对象提供它所需要的其他对象,通过DI(依赖注入)实现的,就是应用程序在运行时依赖IOC容器来动态注入对象所需要的外部依赖。具体是通过反射实现注入 ,反射允许程序在运行的时候动态的生成对象、执行对象的方法、改变对象的属性

问题三、MySQL中插入表情包时报错

1、MySQL5.5之后的变化

  • 在MySQL5.5.3之后,增加了utf8mb4的编码,专门用来兼容四字节的unicode。
  • MySQL的utf8编码的最大字符长度为3字节 ,如果遇到插入4字节时 ,就会报插入异常。

2、解决办法

  • 修改数据库的配置:default-character-set=utf8mb4;
  • 命令行修改数据库:ALTER DATABASE t_yown_userdb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

问题四:支付宝模拟支付如何判断是对应的用户支付了要买的东西

支付宝有两个通知:异步通知、同步通知;

1、异步通知

  • 写一个接口公开给支付宝,当用户在支付宝支付成功之后,我把我的地址给他,它会调用地址,把支付成功的参数传过来。我得到之后就可以判断。

2、同步通知

  • 每间隔几秒去查支付宝接口,我主动去查。这样不好。一直循环去查。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Youngk-01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值