日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

每天几道面试题SSM面试题

發(fā)布時(shí)間:2023/12/10 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 每天几道面试题SSM面试题 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

SSM面試題

1、#{}和¥{}的區(qū)別?

${}會(huì)產(chǎn)生SQL注入,#{}不會(huì)產(chǎn)生SQL注入問(wèn)題

#{}匹配的是一個(gè)占位符,相當(dāng)于JDBC中的一個(gè)?,會(huì)對(duì)一些敏感的字符進(jìn)行過(guò)濾,編譯過(guò)后會(huì)對(duì)傳遞的值加上雙引號(hào),因此可以防止SQL注入問(wèn)題。

${}匹配的是真實(shí)傳遞的值,傳遞過(guò)后,會(huì)與sql語(yǔ)句進(jìn)行字符串拼接。${}會(huì)與其他sql進(jìn)行字符串拼接,不能預(yù)防sql注入問(wèn)題。

2、spring mvc的主要組件

1、前端控制器(DispatcherServlet)

2、處理器映射器(HandlerMapping)

3、處理器適配器(HandlerAdapter)

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

5、視圖解析器(ViewResolver)

3、spring DI 的三種方式

1. 接口注入

2. Setter方法注入

3. 構(gòu)造方法注入

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

1.工廠模式
2.模版模式
3.代理模式
4.策略模式
5.單例模式

5、模糊查詢like語(yǔ)句該怎么寫(xiě)

第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語(yǔ)句中拼接通配符,會(huì)引起sql注入

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

6、如何執(zhí)行批量注入

利用MyBatis拼接sql語(yǔ)句:

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、請(qǐng)說(shuō)說(shuō)MyBatis的工作原理

先封裝SQL,接著調(diào)用JDBC操作數(shù)據(jù)庫(kù),最后把數(shù)據(jù)庫(kù)返回的表結(jié)果封裝成Java類。

8、獲取上一次自動(dòng)生成的主健值

9、說(shuō)一下spring的事務(wù)隔離

1、Default:用底層數(shù)據(jù)庫(kù)的設(shè)置隔離級(jí)別,數(shù)據(jù)庫(kù)設(shè)置的是什么我就用什么;

2、未提交讀(read uncommited) :臟讀,不可重復(fù)讀,虛讀都有可能發(fā)生。

是最低的事務(wù)隔離級(jí)別,它允許另外一個(gè)事務(wù)可以看到這個(gè)事務(wù)未提交的數(shù)據(jù)。

3、已提交讀 (read commited):避免臟讀。但是不可重復(fù)讀和虛讀有可能發(fā)生。

保證一個(gè)事物提交后才能被另外一個(gè)事務(wù)讀取。另外一個(gè)事務(wù)不能讀取該事物未提交的數(shù)據(jù)。

4、可重復(fù)讀 (repeatable read) :避免臟讀和不可重復(fù)讀.但是虛讀有可能發(fā)生。

保證多次讀取同一個(gè)數(shù)據(jù)時(shí),其值都和事務(wù)開(kāi)始時(shí)候的內(nèi)容是一致,禁止讀取到別的事務(wù)未提交的數(shù)據(jù),MySQL 的默認(rèn)級(jí)別。

5、串行化讀 (serializable) :避免以上所有讀問(wèn)題.

這是花費(fèi)最高代價(jià)但最可靠的事務(wù)隔離級(jí)別。事務(wù)被處理為順序執(zhí)行。

Mysql 默認(rèn):可重復(fù)讀

Oracle 默認(rèn):已提交讀

6、臟讀 :表示一個(gè)事務(wù)能夠讀取另一個(gè)事務(wù)中還未提交的數(shù)據(jù)。比如,某個(gè)事務(wù)嘗試插入記錄 A,此時(shí)該事務(wù)還未提交,然后另一個(gè)事務(wù)嘗試讀取到了記錄 A。

7、不可重復(fù)讀 :是指在一個(gè)事務(wù)內(nèi),多次讀同一數(shù)據(jù)。

8、幻讀 :指同一個(gè)事務(wù)內(nèi)多次查詢返回的結(jié)果集不一樣。一個(gè)事務(wù)讀到另一個(gè)事務(wù)已提交的insert數(shù)據(jù)。

10、spring IOC的實(shí)現(xiàn)機(jī)制

1、初始化spring容器

2、掃描包下所有calss

3、解析calss中的注解信息

4、封裝類反射后實(shí)例化類對(duì)象

5、以beanld,bean實(shí)例化類對(duì)象形式保存集合(–本地調(diào)用某個(gè)bean中的方法)

6、getbean

7、bean的實(shí)例化類對(duì)象

8、bean的具體方法及執(zhí)行結(jié)果

總結(jié)

以上是生活随笔為你收集整理的每天几道面试题SSM面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。