SSM面试题

1、#{}和¥{}的区别?

${}会产生SQL注入,#{}不会产生SQL注入问题

#{}匹配的是一个占位符,相当于JDBC中的一个?,会对一些敏感的字符进行过滤,编译过后会对传递的值加上双引号,因此可以防止SQL注入问题。

${}匹配的是真实传递的值,传递过后,会与sql语句进行字符串拼接。${}会与其他sql进行字符串拼接,不能预防sql注入问题。

2、spring mvc的主要组件

1、前端控制器(DispatcherServlet)

2、处理器映射器(HandlerMapping)

3、处理器适配器(HandlerAdapter)

4、后端控制器(处理器)(Handler)

5、视图解析器(ViewResolver)

3、spring DI 的三种方式

1. 接口注入

2. Setter方法注入

3. 构造方法注入

4、spring主要使用了什么模式

1.工厂模式
2.模版模式
3.代理模式
4.策略模式
5.单例模式

5、模糊查询like语句该怎么写

第1种:在Java代码中添加sql通配符。

string a = “%smi%”;
list<name> names = mapper.selectlike(a);
<select id=”selectlike”>select * from foo where bar like #{value}
</select>

第2种:在sql语句中拼接通配符,会引起sql注入

string a = “smi”;
list<name> names = mapper.selectlike(a);
<select id=”selectlike”>select * from foo where bar like "%"${value}"%"
</seect>

6、如何执行批量注入

利用MyBatis拼接sql语句:

INSERT INTO userTable (id,username,password) VALUES ('1','A','123'),('2','B','456'),....

Service层

List<User> userList=new ArrayList<>();
...
userList.add(user1);
userList.add(user2);
userList.add(user3);
userList.add(user4);
...
UserDao.addUsers(userList)

Dao层

public void addUsers(List<User> list);

Mapper代码如下:

 <insert id="方法名">INSERT INTO userTable (id,username,password)VALUES<foreach collection="list" item="u" separator=",">(#{u.id},#{u.username},#{u.password})</foreach></insert>

7、请说说MyBatis的工作原理

先封装SQL,接着调用JDBC操作数据库,最后把数据库返回的表结果封装成Java类。

8、获取上一次自动生成的主健值

9、说一下spring的事务隔离

1、Default:用底层数据库的设置隔离级别,数据库设置的是什么我就用什么;

2、未提交读(read uncommited) :脏读,不可重复读,虚读都有可能发生。

是最低的事务隔离级别,它允许另外一个事务可以看到这个事务未提交的数据。

3、已提交读 (read commited):避免脏读。但是不可重复读和虚读有可能发生。

保证一个事物提交后才能被另外一个事务读取。另外一个事务不能读取该事物未提交的数据。

4、可重复读 (repeatable read) :避免脏读和不可重复读.但是虚读有可能发生。

保证多次读取同一个数据时,其值都和事务开始时候的内容是一致,禁止读取到别的事务未提交的数据,MySQL 的默认级别。

5、串行化读 (serializable) :避免以上所有读问题.

这是花费最高代价但最可靠的事务隔离级别。事务被处理为顺序执行。

Mysql 默认:可重复读

Oracle 默认:已提交读

6、脏读 :表示一个事务能够读取另一个事务中还未提交的数据。比如,某个事务尝试插入记录 A,此时该事务还未提交,然后另一个事务尝试读取到了记录 A。

7、不可重复读 :是指在一个事务内,多次读同一数据。

8、幻读 :指同一个事务内多次查询返回的结果集不一样。一个事务读到另一个事务已提交的insert数据。

10、spring IOC的实现机制

1、初始化spring容器

2、扫描包下所有calss

3、解析calss中的注解信息

4、封装类反射后实例化类对象

5、以beanld,bean实例化类对象形式保存集合(–本地调用某个bean中的方法)

6、getbean

7、bean的实例化类对象

8、bean的具体方法及执行结果

每天几道面试题SSM面试题相关推荐

  1. Java面试被问框架源码看过吗?70道SSM面试题及学习笔记值得收藏!

    java思维导图 ​ 前言 很多小伙伴可能会很困惑,为什么BAT的面试官总是喜欢问源码?其实我们常用的Spring.MyBaits这样的框架可以说是JAVA里面最经典的教科书,从中你能学习到很多写代码 ...

  2. 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸

    什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽自叹不如!松哥希望本文能成为你面霸路上的垫脚石! 做 Java 开发,没有人敢小觑 Spring Boot 的重要性,现在出去面 ...

  3. 1000道最新高频Java面试题,覆盖25个技术栈(多线程、JVM、高并发、spring、微服务、kafka,redis、分布式)从底层原理到架构!

    每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资而是每个技术人的追求.像阿里.腾讯.美团.字节跳动.京东等等的技术氛围与技术规范度还是要明显优于一些创业型公司/小公司,如果说能够在这样的公司锻 ...

  4. 松哥整理了 15 道 Spring Boot 高频面试题,看完当面霸!

    点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 什么是面霸?就是在面试中,神挡杀神佛挡杀佛,见招拆招,面到面试官自惭形秽 ...

  5. 10道海量数据处理的面试题

    说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结. 出处:http://blog.csdn.net/v_JULY_v. 第一部分.十道海量数据处理面试 ...

  6. 16道嵌入式C语言面试题(经典) 预处理器(Preprocessor)

    16道嵌入式C语言面试题(经典) 预处理器(Preprocessor) 1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_ ...

  7. 嵌入式linux开发考试题目,练一练!3道经典嵌入式Linux面试题,答案在文末。

    原标题:练一练!3道经典嵌入式Linux面试题,答案在文末. 题一: 简述memcpy和strcpy的区别? 题二:信号量与互斥锁的区别? 题三:简述程序编译的过程? 题一答案: (1)复制的内容不同 ...

  8. 分享10道常考Java面试题及答案

    转载自   分享10道常考Java面试题及答案 Hi,大家好,今天给大家分享10道常考的Java面试题及答案,涉及到Java中的10个方面.每个领域一道题.希望你能有收获. <面向对象>什 ...

  9. 分享18道Java基础面试笔试题

    转载自 分享18道Java基础面试笔试题(面试实拍) 1.你最常上的两个技术站和最常使用的两个app分別进什么?主要解决你什么需求? 2.请简述http协议中get请求和post请求的区别. 3.请简 ...

  10. vue openlayer单击地图事件循环多次执行_12道vue高频原理面试题,你能答出几道?

    前言 本文分享 12 道 vue 高频原理面试题,覆盖了 vue 核心实现原理,其实一个框架的实现原理一篇文章是不可能说完的,希望通过这 12 道问题,让读者对自己的 Vue 掌握程度有一定的认识(B ...

最新文章

  1. 图像补运算:MatIterator_迭代器反色处理
  2. 财报上的云计算战场: 巨头们垄断加剧
  3. 救援模式下更改用户密码
  4. Qtum量子链AUR开发工具包即日上线
  5. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类
  6. macOS安装Maven_IDEA集成Maven
  7. 360浏览器怎么添加应用 360安全浏览器应用添加教程
  8. 最多添加3个标签,每个标签最长6字,空格或逗号隔开
  9. 在MingW下编译llvm/clang
  10. 计算机面试 OA 试题及答案,办公自动化题库OA(附答案)
  11. 使用python画二元二次函数(笔记)
  12. nyoj366 D的小L 全排列模板题
  13. 计算机管理主分区改成逻辑分区,Win7将主分区变为逻辑分区的方法
  14. 手机相册中的照片如何导入备忘录?
  15. 如何使用微信小程序制作banner轮播图?
  16. 保留指定小数位数js函数封装
  17. HTML打开网页自动播放音乐
  18. 用Javascript开发《三国志曹操传》-开源讲座(四)-用地图块拼成大地图
  19. 一文尽览 | 基于点云、多模态的3D目标检测算法综述!(Point/Voxel/Point-Voxel)
  20. atom编辑器下载安装

热门文章

  1. jupyter怎么安装jieba_记录 anaconda安装jieba
  2. Multisim软件实验
  3. java本地缓存技术或框架
  4. 第一个python程序:爬虫下载课件
  5. java程序设计pdf下载_Java程序设计基础(第5版) PDF 下载
  6. 教你webm格式怎么转换成mp4
  7. 围堵iPhone 13
  8. Docker CE 安装教程
  9. 宏杉MacroSan存储开局指导-流程
  10. 博弈论-第一章 概述